Hi,
preg_match('/[a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*/', $value)
ist das der Regex, der für die Tabelle unten verwendet wurde?
|Adresse|Filter|RegEx|Firefox| |mail@example.org|✔|✔|✔| |mäil@fußhölle.de|✗|✔|✗| |test@موقع.وزارة-الاتصالات.مصر|✗|✗|✔| |bla@Доменні.ru|✗|✗|✔|
Das ✔ steht, wie die erste Zeile andeutet, wohl für "als korrekt erkannt". Das paßt aber nicht zur zweiten Zeile - der Regex erlaubt weder vor noch nach dem @ Umlaute, dennoch soll mäil@fußhölle als korrekt erkannt worden sein?
Das paßt nicht zusammen.
Ah - doch - wegen der fehlenden Anker matcht das il@fu ...
(Ich bin java.util.regex ... gewöhnt - da gibt es match und find - match setzt diese Anker implizit, es gibt nur true zurück, wenn der gesamte String gefunden wird - da dachte ich im ersten Moment, daß auch preg_match den gesamten String prüft ...)
Mit den Ankern ^ am Anfang und $ am Ende käme auch in der zweiten Zeile beim Regex das ✗ hin ...
cu,
Andreas a/k/a MudGuard