Archiv verlassen und diese Seite im Standarddesign anzeigen : Preg Match Fehler
chrisphp 08-04-2005, 15:43 Hallo,
ich habe folgenden Code um bei der Eingabe des Namens zu prüfen:
if(!preg_match("/^[a-zA-Z0-9]{1}[a-zA-Z_.-0-9]{3,18}[a-z0-9]{1}$/", $benutzername)) {...
Jetzt stellt sich mir die Frage wieso ich bei Eingabe des Namens "christoph20" ein False erhalte. Bei "christoph2" gehts allerdings...
Danke für die Hilfe,
Christoph
weil deine quantifierer nicht zu dem string passen!
chrisphp 08-04-2005, 15:52 Nun, ich will das der Name die folgende Form hat:
[a-zA-Z0-9] am anfang und ende.
Es soll jedoch ein -, ein . und ein _ erlaubt sein. Allerdings nicht am Anfang des Namens und ganz am Ende auch nicht.
Hat jemand eine Lösung für mich? [merke: Iám still learning]
kannst dich ja mal im manual und in unserem Tutorial zum Thema schlau machen. Ist so schwer nicht. Aber die fertige Lösung werde ich dir mit sicherheit nicht hinknallen. Vorallem, weil du nicht ansatzweise auf meinen Hinweis eingegangen bist, sondern gleich deine Forderung gestellt hast!
chrisphp 08-04-2005, 16:49 Tut mir leid, sollte nicht als forderung rüberkommen.
hab mir vorhin schon auf php.net das handbuch durchgelesen. allerdings werde ich da nicht ganz schlau draus. ein paar sagen hab ich mit preg_match schon geschafft, allerdings verstehe nicht wie ich vorgehen muss um meine wünsche zu verwirklichen.
auch das handbuch auf php-resource hilft mir da nicht weiter. könnte mir bitte jemand behilflich sein und das "erklären"?
auch das handbuch auf php-resource hilft mir da nicht weiter Falls es dir nicht aufgefall ist. dabei handelt es sich um das php.net-manual... :D
Du sollst ja auch in die Tutorials gucken!
chrisphp 08-04-2005, 16:57 btw. ist mir aufgefallen.
Und haste jetzt in den Tuts nachgeguckt?
chrisphp 08-04-2005, 17:07 Ja hab ich.
Natürlich sind etliche Code-Schnipsel vorhanden. Nur was hilft mir das wenn ich das System nich durchblicke mit dem preg_match arbeitet?
chrisphp 08-04-2005, 17:12 so, ein wenig was konnte ich jetzt schon selbst rausfinden
^ steht für 'anfang'
[0-9] sind alle zahlen
+ sind beliebig viele wiederholungen
$ steht für 'ende'
chrisphp 08-04-2005, 17:22 nun, ein kleines stück weiter bin ich schon, trotzdem - trotz 2 stunden google werd ich noch immer nicht schlau.
mal schaun, vielleicht kanns mir ja jemand erklären wie ich in dem fall vorgehen muss. ich schnall einfach die logik dahinter nicht.
if(!preg_match("/^[a-zA-Z0-9]+[-]+[a-zA-Z0-9]{5,20}$/", $benutzername)) {
chrisphp 08-04-2005, 17:27 So, jetzt funktioniert das ganze einigermaßen. Jetzt aber die Frage: Wenn ich schreibe
if(!preg_match("/^[a-zA-Z0-9]+[-]+[a-zA-Z0-9]{5,20}$/", $benutzername)) {
Dann gibt er mir bei chris-www zum beispiel einen fehler aus. Grund: Weil nach dem "-" ja mindestens 5 Zeichen sein müssen ({5,20}). D.h. also das ich die Angabe der Zeichen weggeben muss. Wie kann ich dann trotzdem überprüfen das gesamt zwischen 5 und 20 Zeichen angegeben sind?
Edit: Das Format des eingegebenen Namens sollte so aussehen: abc-ksfdf
sprich, 1. zeichen muss buchstabe oder nummer sein, letztes zeichen ebenfalls. dazwischen darf (aber muss nicht) ein zeichen wie "-", "." und "_" sein.
weiters darf die gesamte eingabe nicht länger als 20 zeichen, jedoch mindestens 5 zeichen sein
Ich habs jetzt wirklich stundenlang versucht und ich bin kurz vorm platzen weil es einfach nicht funktionieren will
weiters darf die gesamte eingabe nicht länger als 20 zeichen, jedoch mindestens 5 zeichen sein
schicker sportwagen
|
|