Tobias Kloth: Mail-Adresse auf Richtigkeit überprüfen

Beitrag lesen

Hallo Robert,

preg_match("/\w*@\w*.[a-zA-Z]{2,3}/i",$string);

dieser Ausdruck taugt nichts:

  • es gibt durchaus E-Mailadressen bei denen vor dem @ etwas in der Form "vorname.nachname" steht
  • genauso, kann hinter dem @ sowas wie "stud.fh-xyz.de" stehen.
  • es gibt auch Domains mit Umlauten (und anderen Zeichen die nicht in \w enthalten sind)
  • es gibt auch Endungen die mehr als 3 Zeichen haben (.info, .museum)
  • der Ausdruck prüft lediglich ob irgendwo in $string eine Zeichenkette mit einem @ und einem . vorkommen - es fehlen ^ und $ um den gesamten String zu Prüfen und nicht nur einen Teil davon
  • für was schreibst du [a-zA-Z] wenn du hinten sowieso ein i verwendest?
  • der Ausdruck passt auch auf "@.aa" - \w* passt auch auf 0 Zeichen ...

Grüße aus Nürnberg
Tobias