RFC 5322 Standard:
Erlaubt dot-atom local-part, quoted-string local-part, obsolete (gemischt dot-atom und quoted-string) local-part, domain name domain, (IPv4, IPv6 und IPv4-mapped IPv6 address) domain literal domain und (nested) CFWS.
'/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD'
RFC 5321 Standard:
Erlaubt dot-atom local-part, quoted-string local-part, domain name domain und (IPv4, IPv6 und IPv4-mapped IPv6 address) domain literal domain.
'/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!"?(?>\\\[ -~]|[^"]){65,}"?@)(?>([!#-\'*+\/-9=?^-~-]+)(?>\.(?1))*|"(?>[ !#-\[\]-~]|\\\[ -~])*")@(?!.*[^.]{64,})(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?2)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?3)){7}|(?!(?:.*[a-f0-9][:\]]){8,})((?3)(?>:(?3)){0,6})?::(?4)?))|(?>(?>IPv6:(?>(?3)(?>:(?3)){5}:|(?!(?:.*[a-f0-9]:){6,})(?5)?::(?>((?3)(?>:(?3)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?6)){3}))\])$/iD'
Grundlegend:
Erlaubt Punkt-Atom-Lokalteil und Domänennamen-Domäne (erfordert mindestens zwei Domänennamen-Bezeichnungen, wobei die TLD auf 2-6 alphabetische Zeichen beschränkt ist).
"/^(?!.{255,})(?!.{65,}@)([!#-'*+\/-9=?^-~-]+)(?>\.(?1))*@(?!.*[^.]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?\.){1,126}[a-z]{2,6}$/iD"
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()