Heim > Backend-Entwicklung > Python-Tutorial > Reicht Regex für eine genaue E-Mail-Validierung aus?

Reicht Regex für eine genaue E-Mail-Validierung aus?

Susan Sarandon
Freigeben: 2024-11-14 22:46:02
Original
682 Leute haben es durchsucht

Is Regex Enough for Accurate Email Validation?

Regex-Fallstricke bei der E-Mail-Validierung

Die Validierung von E-Mail-Adressen mithilfe regulärer Ausdrücke kann eine knifflige Aufgabe sein, insbesondere bei Subdomain-Adressen. Um dieser Herausforderung zu begegnen, untersuchen wir die Einschränkungen, wenn wir uns ausschließlich auf Regex verlassen.

Einschränkungen der Regex-Validierung

Bei der Validierung der syntaktischen Korrektheit einer E-Mail-Adresse (z. B. Präsenz). von @ und .) berücksichtigt Regex Tippfehler nicht und stellt nicht sicher, dass die Adresse tatsächlich existiert. Um diese Probleme zu beheben, sind umfangreichere Prüfungen erforderlich, nämlich:

  1. Fehler bei der Eingabe: Auch syntaktisch gültige E-Mail-Adressen können falsch eingegeben werden. Um solche Fehler auszuschließen, ist eine manuelle Überprüfung erforderlich.
  2. Existenzüberprüfung: Durch die Kontaktaufnahme mit dem SMTP-Server über das Paket „validate_email“ kann die Existenz einer E-Mail-Adresse überprüft werden. Dieser Ansatz garantiert jedoch nicht, dass die Adresse dem beabsichtigten Empfänger gehört.

Empfohlene einfache Prüfung

Angesichts der Einschränkungen der Regex-Validierung ist eine grundlegende Prüfung erforderlich das häufige Benutzerfehler identifiziert, reicht oft aus:

[^@]+@[^@]+\.[^@]+
Nach dem Login kopieren

Diese Regex überprüft das Vorhandensein von genau einem @-Symbol und mindestens einem . nach dem @.

Verwenden regulärer Ausdrücke im Code

Um den obigen regulären Ausdruck in Code zu integrieren, verwenden Sie das re-Modul in Python:

import re

if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
    # Handle invalid email address
Nach dem Login kopieren

Beachten Sie die Verwendung des unformatierten String-Literals von Python mit dem Präfix r, um zu vermeiden, dass Zeichen zweimal maskiert werden. Erwägen Sie bei komplexen regulären Ausdrücken, diese zuerst zu kompilieren:

EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+")

if not EMAIL_REGEX.match(email):
    # Handle invalid email address
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonReicht Regex für eine genaue E-Mail-Validierung aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage