• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

eregi - nur Buchstaben, Ziffern, Bindestrich und Punkt

Tobi44

Mitglied
Hallo,

habe eben versucht, mir anhand dieses Beispiels abzuleiten, dass nur das Senden von Buchstaben, Ziffern, einem Bindestrich und einem Punkt erlaubt ist. Leerzeichen und alle anderen Sonderzeichen sollen nicht erlaubt sein. Mindestanzahl der Buchstaben muss 3 sein, Zahlen allein dürfen gar nicht durchgehen.

eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",

Meine Nerven sind aber nun am Ende - vielleicht kann mir jemand ein Beispiel für die oben genannten Kriterien nennen, ich blicke da nicht durch.

(Habe nun das hier drin:
"^([a-z0-9_]|\-|\.){3,}\$"
Aber das entspricht noch nicht gänzlich meinen Vorstellungen oben.)
 
Zuletzt bearbeitet:
Alles, was in den eckigen Klammern steht, darf an dieser Stelle vorkommen. Schreib das Minus und den Punkt da mit rein, nimm die geschweiften klammern mit in die Runden hinter den eckigen und schau nochmal, ob's funktioniert. Damit mindestens 1 Buchstabe vorkommt erzeugst du nochmal eckige Klammern vor den jetzigen in denen nur a-z drin steht. Aus der 3 in den geschweiften Klammern machst du dann eine 2.

Sollte ungefähr so aussehen:

Code:
^([a-zA-Z][a-zA-Z0-9_.-]{2,})$
In eckigen Klammern muss das Minus immer ganz hinten stehen wenn einzeln betrachtet, da es sonst als "Menge" gewertet wird.
Wie du damit E-Mail-Adressen validierst sollte damit nun auch klar sein. ;)
 
Zuletzt bearbeitet:
Danke - aber verstanden hab ich das jetzt nicht... Wieso zwei eckige Klammern mit a-zA-Z und nochmal a-zA-Z und 0-9?
 
Niemals mit ereg arbeiten!

Das für das allgemeine Format:
preg_match('/^[a-z0-9\.-]{3,}$/i', $string);

Und mit ctype_digit überprüfen ob es sich um eine positive Ganzzahl handelt.
 
Zurück
Oben