PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Expression einer Benutzernamen Validierung


sina87
07.06.2008, 01:49
Guten morgen Allezusammen,

ich habe letztes Jahr eine Ausbildung als Fachinformatikerin begonnen und muss momentan in meiner Firma die Validierung eines Registrierungsformulars mittels Javascript oder AJAX und PHP realisieren.

Die validierung einer E-Mail Adresse war ja, anhand des immer selben Aufbau, nicht sehr schwer. Doch beim Benutzernamen komme ich irgendwie nicht weiter.

Folgende Expression haut unter PHP und preg_match gut hin: ([[:punct:][:space:][:cntrl:]§´äöüßÄÖÜ])

In Javascript will das ganze aber irgendwie nicht so.

Vielleicht habt ihr ja eine Idee wie man die Expression am besten aufbauen kann. Erlaubt sollen Alphanumerische Zeichen sowie der Unterstrich und das minuszeichen sein.


Liebe Grüsse
Sina W.


Firefall
07.06.2008, 12:19
[A-Za-z0-9_-]+
Eines oder mehrere alphanumerische Zeichen oder _ und -.

sina87
07.06.2008, 14:04
[A-Za-z0-9_-]+Eines oder mehrere alphanumerische Zeichen oder _ und -.

Auch wenn meine Expression es eigentlich zeigen sollte: Ich möchte keine Umlaute und Sonderzeichen wie Leerzeichen etc. im Benutzernamen haben.
Wenn ich also meine Expression Anwende wird das ganze bei false als "korrekt" durchgehen.

Deine Expression fragt doch nur ab ob die Sachen vorhanden sind, ich muss aber eben Sonderzeichen ausschließen und da greift deine oben genannte Expression nicht. Angenommen ich habe folgenden Benutzernamen: marion-//_()@ wird deine obige Expression immer true ausgeben, und dass ist ja nicht das was ich benötige.


Liebe Grüsse
Sina W.

BrudaSwen
07.06.2008, 15:14
Ich gehe mal davon aus, dass Firefall positiv matchen wollte und somit validieren wollte, ob der eingegebene Benutzername korrekt ist.

Du hingegen versucht falsche Benutzernamen auszuschließen, was meiner Meinung nach der schlechtere Weg ist, da Du alle Sonderzeichen ausschließen musst.

Dein obiger Ausdruck würde beispielsweise folgenden Benutzernamen erlauben: a#a

Was spricht nun also dagegen, den Benutzernamen auf Firefalls Weise zu überprüfen!? Wie genau soll der Benutzername aussehen? Sind Zahlen erlaubt? Mindeslänge, etc.

Ergänzung: Dein Gegenbeispiel marion-//_()@ liefert bei folgendem Ausdruck false:
^[A-Za-z0-9_-]+$, da folgende Zeichen /()@ nicht unter den erlaubten Zeichen sind. (^ steht für Zeilenanfang, $ für Zeilenende) Ich hoffe das verdeutlicht Firefalls Idee.

sina87
07.06.2008, 15:27
@BrudaSwen

Na dass schaut doch schonmal besser aus :-)

Firefall
07.06.2008, 17:17
Wenn du negativ willst machst du so:
[^A-Za-z0-9_-]Bei Match Name ungültig.

Crusade
10.07.2008, 21:54
Oder du wendest [:alnum:] als zulässiges Zeichen an.