Leider bin ich mit regulaeren Ausdruecken noch nicht so bewandert und habe deshalb aus dem Internet folgenden reglaeren Ausdruck zur Pruefung einer korrekten Email benutzt:
$wertneu =
eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}",
$wert1);
Was ist an derm regulaeren Ausdruck falsch und wie ist er
korrekt?
Ein Schnellschuss: Das zweite ‚+‘ mal durch ein ‚*‘ ersetzen.
Solange du bei recht gebräuchlichen Domains bleibt passt das. Aber nur bis 4 Zeichen für die Domainendung. Also .de, .rus, .info. Wärend du .museum z.B. nicht als valide einstufst. Dafür müsstest du hinten noch die {2,4} in {2,6} umändern.
Ich glaub, ein Emailcheck ist eine Wissenschaft für sich
selbst!
Genau, das tut sich doch keiner freiwillig an. Ich checke die Syntax von E-Mail-Adressen mit
preg\_match('/^.+@.+\..+$/',...)
evtl. wird die konvertiert nach Puny-Code bei Umlautdomains. Von solchen Checks geht sowieso keine Sicherheit aus, deshalb simple and stupid, um wenigstens keinen korrekte Adresse auszuschließen.