Moin!
aber warum nicht die TLDs gleich differenzieren:
eregi("[1]+(.[_a-z0-9-]+)*@ (0-9a-z*.)+([a-z]{2}|biz|com|net|org|edu|gov|mil|info|name)$",$email);
Wird natürlich mit jeder neuen Top Level Domain länger,
Das ist der große Nachteil, weil man dann ständig informiert sein muß, welche TLDs es denn gibt.
BTW: Du bist auch nicht 100% informiert, denn es fehlt '.museum' in deiner Liste. Dürfte zwar derzeit noch sehr selten auftreten, aber wäre ja theoretisch möglich.
Außerdem: Der Domainanteil kann mehr als nur einen Punkt enthalten, und irgendwie erscheint mir der Teil der Second-Level-Domain irgendwie auch nicht ganz kosher.
oder nur mit
...[a-2]{2,}$",$email);
zu checken, ob die TLD aus mindestens 2 Buchstaben besteht.
Das ist die beste Möglichkeit. Es würde eigentlich reichen, zu prüfen, ob ein "@" vorkommt - dann genügt die Mailadresse zumindest der einzigen elementaren Forderung an die Form. Alles andere ist ein wenig Kaffeesatzleserei - und vor allem dann ärgerlich, wenn eine gültige Adresse als falsch abgewiesen wird.
- Sven Rautenberg
_a-z0-9- ↩︎