zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden RegExp Problem

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 21.12.2008, 19:30
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Standard RegExp Problem

Hallo zusammen

Ich kämpfe mit folgendem RegExp Problem zum Thema Validierung von Formulareingaben. Ich möchte dass der Benutzer nur folgende Eingaben tätigen darf: A-Z, alle Umlaute und alle Französischen Zeichen wie è,é,à usw zudem soll auch "-" erlaubt sein.

Ich arbeitete hierfür mit match() und dem entsprechende RegExps. Folgendes habe ich bereits erstellt:

Code:
vorname	= document.form.vorname.value;		

check_1 = vorname.match(/\W/);		// Sonderzeichen
check_2 = vorname.match(/\_/);		// Underline - gehört zu \W
check_3 = vorname.match(/\d/);		// Zahlen
			
if (check_1!=null||check_2!=null||check_3!=null|) {
document.form.error_vorname.value="Bitte geben Sie einen korrekten Vornamen ein";
}
Dieser Code funktioniert soweit gut, dass der User keine Sonderzeichen und keine Zahlen eingeben darf. Nur wie bekomme ich es hin dass alle Umlaute und alle Französischen Zeichen wie è,é,à usw zudem soll auch "-" erlaubt sein können?

Zusatzfrage: Wie ihr sieht habe ich pro RegExp eine eigene Variable (check_nummer) generiert. Mir ist keine Variante in den Sinn gekommen wie ich das mit weniger Code machen könnte. Man kann match() ja immer nur ein RegExp auf einmal geben oder?

Besten Dank für eure geschätze Hilfe.

plectron
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 21.12.2008, 19:55
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 15.01.2008
Ort: Berlin Mitte
Beiträge: 214
netbenni befindet sich auf einem aufstrebenden Ast
Standard

um alle regexps in eine zu packen versuche folgendes:

/[\W\_\d]/
__________________
„Tu soviel Gutes, wie Du kannst, und mache so wenig Gerede wie nur möglich darüber.“
C.D.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 21.12.2008, 20:34
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

JavaScript unterstützt leider noch keine Ausdrücke für Unicode-Zeicheneigenschaften, sonst könntest du einfach einen Ausdruck wie folgenden verwenden, um alle als Groß- und Kleinbuchstaben klassifizierten Zeichen zu beschreiben:
Code:
/^\p{LuLl}+$/
Doch so bleibt dir wohl nichts anderes übrig, als die Zeichen einzeln aufzuzählen, also:
Code:
/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF\-]+$/
__________________
Markus Wulftange
Mit Zitat antworten
  #4 (permalink)  
Alt 21.12.2008, 21:20
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Standard

Klingt nicht schlecht, ich probiert das und melde mich wieder. besten dank!
Mit Zitat antworten
  #5 (permalink)  
Alt 21.12.2008, 23:37
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Lächeln

Zitat:
Zitat von Gumbo Beitrag anzeigen
Doch so bleibt dir wohl nichts anderes übrig, als die Zeichen einzeln aufzuzählen, also:
Code:
/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF\-]+$/
Erst mal danke für den Tipp Gumbo, dazu noch ne Frage. Die Bezeichnungen u00C0-, u00F6 usw sind das Unicode Zeichen? Ich kann über Google keine Tabelle finden wo diese enthalten sind und ich noch weitere sehen kann. Hättest du mir nen Link?

Dann noch ne Frage zu den den anderen Zeichen. Also "^" heisst doch "Steht am Anfang" und "$" ist für "Steht am Ende". Das "+" bedeutet soweit ich weiss "muss mindestens 1x vorkommen". Diese drei (hmm wie nennt man die gleich... Steuerzeichen?) müssen also zwingend vorkommen?

Besten Dank schon mal und schöne grüsse
Mit Zitat antworten
  #6 (permalink)  
Alt 22.12.2008, 01:16
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Du meinst vermutlich das richtige, drückst es aber nur falsch aus. Der genannte reguläre Ausdruck beschreibt alle Zeichenfolgen, die nur aus ein oder mehreren Zeichen der angegebenen Zeichenmenge bestehen.
Die Metazeichen „^“ und „$“ für den Zeichenkettenbeginn beziehungsweise das -ende sind hier notwendig, um eben die gesamte Zeichenkette exakt beschreiben zu können. Würden das „^“ am Anfang, das „$“ am Ende oder beide fehlen, würde der reguläre Ausdruck nur als „mit … endend“, „mit … beginnend“ beziehungsweise „enthält …“ interpretiert.
__________________
Markus Wulftange
Mit Zitat antworten
  #7 (permalink)  
Alt 22.12.2008, 12:40
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Lächeln

Danke Gumbo und hättest du mir noch einen Link zu allen anderen UNICODE (?) Zeichen damit ich auch andere einfügen kann? Irgendwie finde ich ganz andere Zeichen wenn ich UNICODE Zeichen Google.

Besten Dank für die geschätzte Hilfe.

Grüsse plectron
Mit Zitat antworten
  #8 (permalink)  
Alt 22.12.2008, 14:07
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Notfalls kannst du die Zeichendatenbank auf unicode.org befragen. Dein Betriebssystem sollte allerdings auch so etwas Ähnliches wie eine Zeichenpalette bieten, in der du die Zeichen nachschauen kannst.
__________________
Markus Wulftange
Mit Zitat antworten
  #9 (permalink)  
Alt 23.12.2008, 17:23
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Daumen hoch

Super Danke für den Tipp, funktioniert bestens. Ist halt einfach ein bisschen mühsam alle Zeichen einzeln einzugebene aber wenigstens funktionierts Eine Idee von mir war noch ein Array zu machen mit allen Unicode Zeichen, was dann aber nicht funktioniert. Bespiel:

Code:
\array[0]\
Danke und schöne Festtage!
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 30.12.2008, 22:29
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.01.2008
Beiträge: 24
plectron befindet sich auf einem aufstrebenden Ast
Standard

Seltsamerweise kann ich den selben regulären Ausdruck mit den Sonderzeichen aber nicht mit PHP verwenden (preg_match Funktion);
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Font der Überschrift ändern (Problem) artist CSS 2 07.12.2007 11:01
Design zu CSS/HTML verarbeiten - Problem häufen sich. Grafikamateur CSS 2 06.08.2007 10:57
Problem mit WordPress und dem Bilder Upload Maxefix Serveradministration und serverseitige Scripte 0 19.12.2006 15:58
Problem bei Div's - zwei mal das gleiche und doch nicht ... Niriel CSS 10 09.06.2005 18:39
Problem mit einem CSS Layout nARC CSS 20 21.05.2005 07:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:28 Uhr.