Maison >développement back-end >C++ >Pourquoi les expressions régulières sont-elles insuffisantes pour une validation robuste des e-mails ?
Validation des e-mails: les pièges des expressions régulières
Les expressions régulières (regex) sont fréquemment utilisées pour la validation des e-mails, mais leurs limites peuvent conduire à des résultats inexacts. Examinons les faiblesses d'une approche regex typique.
Considérez ce modèle regex commun:
<code>@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"</code>
Cela tente de correspondre:
([w.-] )
: la partie du nom d'utilisateur (par exemple, "exemple"). ([w-] )
: le domaine (par exemple, "com"). ((.(w){2,3}) )$
: domaines de niveau supérieur (TLD) - deux ou trois caractères. Cependant, ce regex ne parvient pas à valider de nombreuses adresses e-mail légitimes, telles que "utilisateur @ [e-mail protégé]".
Pourquoi ce regex échoue:
Approches plus fiables:
Tire de la classe MailAddress
: La classe System.Net.Mail.MailAddress
fournit une solution plus robuste. Il gère une plus grande variété de formats de messagerie et intègre la gestion des erreurs intégrée.
MailAddress.TryCreate
(pour .NET 5): dans .NET 5 et versions ultérieures, MailAddress.TryCreate
offre une approche plus propre. Il renvoie une valeur booléenne indiquant le succès ou l'échec, simplifiant la validation et la gestion des exceptions.
En résumé, bien que Regex puisse être utile, ses limites de validation des e-mails le rendent peu fiable. L'utilisation de la classe MailAddress
ou MailAddress.TryCreate
offre une méthode beaucoup plus robuste et précise pour valider les adresses e-mail.
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!