Je sais qu'il y a beaucoup de questions sur la validation des courriers et des regex spécifiques. J'aimerais savoir quelles sont les meilleures pratiques pour la validation des courriels en ce qui concerne le Nom d'utilisateur+anythingelse@gmail.com Code> Trick ( Détails ici ). Ma validation actuelle pour la validation JavaScript est la suivante, mais elle ne prend pas en charge le
+ code> dans la poignée:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
5 Réponses :
Les regexs ne sont pas en fait un très bon moyen de valider des courriels, mais si vous souhaitez simplement modifier votre regex pour gérer le plus, changez-la. à ce qui suit: p> comme exemple de la manière dont cette regex ne validait pas contre la spécification: le courrier électronique + code> est un Caractère valide dans une adresse email . Peu importe si le domaine n'est pas gmail.com ni googlemail.com
.. @ -. COM code> est valide selon lui. em> p> p>
Je serais curieux de savoir quel est le meilleur pour gérer la validation d'adresse email.
Je suppose qu'il veut dire qu'il est préférable d'utiliser une bibliothèque éprouvée testée plutôt que de rouler votre propre regex. Apache Commons est un exemple Java d'une telle bibliothèque.
Voir Stackoverflow.com/Questtions/3232/...
Est-ce qu'il veut dire le format de l'email? Ou la validité de l'e-mail?
@ Ben S Merci pour la Regexp mise à jour. Je devais ajouter un autre `avant votre code> \ + \ +` pour fonctionner. Je n'étais pas au courant de
+ code> faisant partie de la spécification afin que cela soit mis en évidence. Je sais maintenant pour l'avenir.
J'irais plus loin que "ce n'est pas un très bon moyen": c'est mathématiquement impossible i> à valider (toutes possibles) adresses électroniques avec des regexes. La grammaire définissant le format des adresses électroniques est une grammaire de type 2 Chomsky, et les regexnes ne sont capables que de traiter avec les grammaires de type 3 chomsky: EN.Wikipedia.org/wiki/chomsky_gammar#The_Hierarchy
VOUS REGEXP DONNER MON THE ERREUR: Compilation a échoué: Plage hors de l'ordre dans la classe de caractères à décalage 16 code>. Il faut une barre oblique inverse devant le premier 'moins'. Voir REGEX101
Si vous devez valider des courriels via regexp, alors Lire la norme ou au moins Cet article .
La norme suggère d'utiliser Cette réégycle: p> si cela ne vous effraie pas, il devrait :) p> p>
De l'article, vous liez à: "Ne copiez pas aveuglément des expressions régulières des bibliothèques en ligne ou des forums de discussion." De plus, cette regex toujours i> ne valide pas complètement à la spécification.
@Aaron merci, c'est très effrayant. Je vais prétendre que je n'ai jamais vu cela avant - surtout les personnages codés!
J'aurais tendance à aller avec quelque chose sur les lignes de /.+@.+\..+/ pour vérifier les erreurs simples. Ensuite, j'enverrais un courrier électronique à l'adresse pour vérifier qu'elle existe en fait, car la plupart des frappes de frappe entraîneront toujours des adresses électroniques valides syntaxiquement. P>
Les spécifications permettent de vraiment des adresses e-mail laides folles. Je suis souvent très ennuyé par des sites Web se plaignant même d'adresses électroniques valides parfaitement normales, s'il vous plaît, essayez de ne pas rejeter les adresses e-mail valides. Il vaut mieux accepter des adresses illégales que de rejeter les juridiques. P>
Comme les autres l'ont suggéré, j'irais avec une simple régexpe comme /.+@.+/ puis envoie un email de vérification. S'il est assez important de valider, il est suffisamment important de vérifier, car une adresse électronique légale peut encore appartenir à une personne autre que votre visiteur. Ou contenir une faute typographique inattendue mais fatale. P>
* Modifier: supprimé le point de la partie de domaine de la regex, car A @ à code> est toujours une adresse électronique valide. Donc, même ma validation super simplifiée rejetée d'adresses valides. Y a-t-il un inconvénient pour tout simplement accepter tout ce qui contient un @ avec quelque chose devant et derrière elle? P>
Il n'y a aucune raison pour que le gouvernement des Tonga ne puisse pas ajouter d'entrée MX code> dans le fichier
à code> cctld, faisant une adresse telle que
mcv @ à code> une adresse e-mail réelle et fonctionnelle. Ils ont déjà un serveur Web en cours d'exécution sur
http: // à code> (pour un service de désactivé URI), il n'est donc certainement pas irréaliste.
Un très bon article sur ce sujet Je savais comment valider une adresse électronique jusqu'à ce que je lisais le RFC P>
C'est à peine une affaire quand elle fait partie de la norme de messagerie.
N'utilisez pas de regex pour la validation par courrier électronique, autrement que de saisir des brouillages évidents. Envoyez simplement l'utilisateur un message électronique avec un lien «Activation». Il n'y a pas de réceptions de bocyprorog pour la validation par e-mail. Au moins aucun qui convient à une feuille de papier A4, même lorsqu'il est imprimé dans une police minuscule, mais lisible, de police ;-) ( régulier-expressions.info/email.html )
@Tloach Je considère que c'est un tour si tous les services de messagerie le supportent de manière à envoyer le courrier électronique à la première partie de la poignée avant le
+ code> quelle que soit la pièce après le
+ Code> - Je n'étais même pas au courant que cela faisait partie de la norme.
@Duroth je suis d'accord. Malheureusement, nous construisons un site d'une carte créative qui met un chèque ou X à côté de la ligne de messagerie après avoir flou du champ de saisie. Cet aspect créatif nécessite une validation JS sur Flou.
Cela refuserait mon adresse e-mail dans laquelle la pièce avant le @ n'est qu'un * caractère *. L'adresse e-mail est valide.