Regex est-il suffisant pour une validation précise des e-mails ?

Susan Sarandon
Libérer: 2024-11-14 22:46:02
original
587 Les gens l'ont consulté

Is Regex Enough for Accurate Email Validation?

Pièges des Regex dans la validation des e-mails

La validation des adresses e-mail à l'aide d'expressions régulières peut être une tâche délicate, en particulier pour les adresses sous-domaines. Pour relever ce défi, explorons les limites de s'appuyer uniquement sur les regex.

Limitations de la validation des regex

Lors de la validation de l'exactitude syntaxique d'une adresse e-mail (par exemple, la présence de @ et .), l'expression régulière ne tient pas compte des fautes de frappe et ne garantit pas que l'adresse existe réellement. La résolution de ces problèmes nécessite des vérifications plus approfondies, à savoir :

  1. Effacements typographiques : Même les adresses e-mail syntaxiquement valides peuvent être mal saisies. Une vérification manuelle est nécessaire pour exclure de telles erreurs.
  2. Vérification de l'existence : contacter le serveur SMTP via le package validate_email peut vérifier l'existence d'une adresse e-mail. Cependant, cette approche ne garantit pas que l'adresse appartient au destinataire prévu.

Vérification simple recommandée

Compte tenu des limites de la validation des regex, une vérification de base qui identifie les erreurs courantes des utilisateurs est souvent suffisant :

[^@]+@[^@]+\.[^@]+
Copier après la connexion

Cette expression régulière vérifie la présence d'exactement un symbole @ et d'au moins un . après le @.

Utilisation d'expressions régulières dans le code

Pour incorporer l'expression régulière ci-dessus dans le code, utilisez le module re en Python :

import re

if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
    # Handle invalid email address
Copier après la connexion

Notez l'utilisation du littéral de chaîne brute de Python préfixé par r pour éviter d'échapper deux fois les caractères. Pour les expressions régulières complexes, pensez à les compiler d'abord :

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

if not EMAIL_REGEX.match(email):
    # Handle invalid email address
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal