Hilfe bei regulärem Ausdruck
Eddie
- php
0 Julian Hofmann0 Oggy
Hallo allerseits,
ich prüfe bei mir das Format von E-Mail-Adressen auf Gueltigkeit, und zwar mit folgendem Ausdruck:
Und zumindest Outlook findet das nicht korrekt.
Also meine Frage:
Zugebenermassen bin ich nicht so fit mit RegEx, hatte den Ausdruck aus irgendeinem Forum - drum bin ich grad etwas aufgeschmissen :-(
Danke Euch!
Eddie
Hallo.
if(!ereg("^([0-9,a-z,A-Z]+)(.,_)*@(.,_,-)*.{2}([0-9,a-z,A-Z])?$",$eMail))
Mit dem Ausdruck ist es möglich Dir noch ganz andere Adressen "reinzuschmuggeln". Dein gegebenes Beispiel für eine geschmuggelte Adresse entspricht Deinen Vorgaben. Das Komma lässt Du in der 2. eckigen Klammer zu und erwartest danach kein Zeichen mehr.
In Regulären Ausdrücken werden Zeichen ohne Trennzeichen angegeben. Willst Du also alle Ziffern und Buchstaben zulassen, dann müsstest Du [0-9a-zA-Z] schreiben statt [0-9,a-z,A-Z].
Empfehlenswert zu lesen ist ein Feature-Artikel: http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html Dort gibt auch die Lösung für Dein Problem.
Grüße aus Würzburg
Julian
hi,
if(!ereg("^([0-9,a-z,A-Z]+)(.,_)*@(.,_,-)*.{2}([0-9,a-z,A-Z])?$",$eMail))
lass die kommas in [] weg, also z.b. [0-9a-zA-Z] statt [0-9,a-z,A-Z], das sollte schon mal weiterhelfen....
aber du solltest den ganzen string nochmal überdenken, er beschreibt nicht unbedingt eine gültige email adresse...
viel spass beim weiterprobieren, ist auf jeden fall sehr lehrreich, weiß das aus erfahrung ;-)
gruß oggy