Im Laufe der Jahre habe ich langsam eine regulärer Ausdruck die die Gültigkeit Die meisten E-Mail-Adressen korrekt, vorausgesetzt, sie verwenden keine IP-Adresse als Serverteil.
Ich verwende es in mehreren PHP-Programmen, und es funktioniert die meiste Zeit. Von Zeit zu Zeit werde ich jedoch von jemandem kontaktiert, der Probleme mit einer Website hat, die es verwendet, und ich muss dann einige Anpassungen vornehmen (vor kurzem habe ich festgestellt, dass ich keine vierstelligen Buchstaben zulasse TLDs ).
Was ist der beste reguläre Ausdruck, den Sie haben oder gesehen haben, um E-Mails zu validieren?
Ich habe mehrere Lösungen gesehen, die Funktionen verwenden, die mehrere kürzere Ausdrücke verwenden, aber ich hätte lieber einen langen komplexen Ausdruck in einer einfachen Funktion als mehrere kurze Ausdrücke in einer komplexeren Funktion.
10 Stimmen
Der Regex, der überprüfen kann, ob eine IDNA korrekt formatiert ist, passt nicht in Stackexchange. (die Regeln für die Kanonisierung sind sehr umständlich und eignen sich besonders schlecht für die Regex-Verarbeitung)
13 Stimmen
Warum Sie dies nicht tun sollten: Kann es schaden, E-Mail-Adressen mit einer Regex zu validieren?
0 Stimmen
Die Regexe können sein variabel denn in manchen Fällen kann eine E-Mail ein Leerzeichen enthalten, in anderen Fällen darf sie keine Leerzeichen enthalten.
0 Stimmen
@Jasen Glücklicherweise gibt es keine Vorschrift, dass E-Mail-Adressen eine gültige IDNA haben müssen. E-Mail-Adressen sind so definiert, damit sie mit Erweiterungen der IDNA-Syntax vorwärtskompatibel sind.
0 Stimmen
Sie können Symfonys Regex für eine lose und strenge Prüfung überprüfen: github.com/symfony/symfony/blob/5.x/src/Symfony/Component/
0 Stimmen
Die Verwendung von Regex kann die Sicherheit des Servers beeinträchtigen, aber wenn es sich nur um ein Eingabemuster handelt, schlage ich vor, dieses zu verwenden: stackoverflow.com/questions/5601647/
0 Stimmen
Ich empfehle Ihnen, diesen Artikel zu lesen: debounce.io/blog/articles/email-syntax-error-explained
0 Stimmen
Verwenden Sie diesen Ausdruck für die E-Mail-ID -
^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
0 Stimmen
Ähnlich: Wie lässt sich eine E-Mail-Adresse am besten in JavaScript validieren?
0 Stimmen
Ich bin zwar spät dran, aber da PHP erwähnt wurde, sollten Sie die Verwendung von filter_var()