Quelle est l’expression régulière la plus simple pour valider les emails afin de ne pas les accepter aveuglément?

Lorsque les utilisateurs créent un compte sur mon site, je souhaite que la validation du serveur pour les e-mails soit refusée pour toutes les entrées.

Je vais envoyer une confirmation, de manière à faire une validation de poignée de main .

Je cherche quelque chose de simple, pas le meilleur , mais pas trop simple qui ne valide rien. Je ne sais pas où la limitation doit être, car toute expression régulière ne fera pas la validation correcte car il n’est pas possible de le faire avec des expressions régulières.

J’essaie de limiter la complexité visuelle et visuelle inhérente aux expressions régulières, car dans ce cas, tout sera correct.

Quelle expression rationnelle puis-je utiliser pour le faire?

^\S+@\S+$ 

Il est possible d’écrire une expression régulière qui n’accepte que les adresses électroniques conformes aux normes. Cependant, il existe certaines adresses électroniques qui ne suivent pas ssortingctement les normes, mais fonctionnent toujours.

Voici quelques expressions régulières simples pour la validation de base:

Contient un caractère @:

 @ 

Contient @ et une période quelque part après:

 @.*?\. 

A au moins un caractère avant le @, avant la période et après:

 .+@.+\..+ 

A seulement un @, au moins un caractère avant le @, avant la période et après:

 ^[^@]+@[^@]+\.[^@]+$ 

L’utilisateur AmoebaMan17 suggère cette modification pour éliminer les espaces:

 ^[^@\s]+@[^@\s]+\.[^@\s]+$ 

Je pense que ce petit ajustement à l’expression d’AmoebaMan17 devrait empêcher l’adresse de commencer / se terminer par un point et aussi d’arrêter plusieurs points côte à côte. Essayer de ne pas le rendre complexe tout en éliminant un problème commun.

 (?!.*\.\.)(^[^\.][^@\s]+@[^@\s]+\.[^@\s\.]+$) 

Il semble fonctionner (mais je ne suis pas RegEx-pert). Corrige mon problème avec les utilisateurs copiant et collant les adresses électroniques à partir de la fin des phrases qui se terminent par un point.

C’est-à-dire: Voici ma nouvelle adresse e-mail [email protected].

Faites votre choix.

Voici celui qui est conforme à la section 3.4.1 de la RFC 2822 …

 (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 

Juste au cas où vous êtes curieux. 🙂

^ [a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 -] +. [a-zA-Z0-9 -.] + $

  • Seulement 1 @
  • Plusieurs domaines et sous-domaines

“^ \ w [^ @] * @ \ w [^ @.] +. \ w [^.] {2,4} $”. Ne permet pas plus d’un @ ou période, fonctionne très bien jusqu’à présent.

Aussi, pour tester différentes expressions régulières, téléchargez Expresso depuis http://www.ultrapico.com/ . Cela m’a vraiment aidé.