[Résolu] Validation e-mail sous jQuery Validate

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

[Résolu] Validation e-mail sous jQuery Validate

Message par Ymai »

Bonjour
Je suis un peu étonné de découvrir que le plugin "validate" (http://bassistance.de/jquery-plugins/jq ... alidation/) de jQuery laisse passer comme valide des adresses du type
username@foo_bar.net
Il me semble que le caractère "underscore" n'est pas autorisé dans un nom de domaine.
En tous les cas, la fonction "filter_var" de PHP (http://fr.php.net/filter_var) avec le filtre "FILTER_VALIDATE_EMAIL" n'admet pas le caractère "underscore" (c'est ce qui m'a mis la puce à l'oreille).
Dans validate.jquery.js, la syntaxe du validateur est

Code : Tout sélectionner

return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
dans laquelle j'avoue honnêtement n'y voir pas très clair.
Quelqu'un aurait une petite idée de ce qui doit y être modifié pour refuser le caractère "underscore" dans le nom de domaine?
Merci pour toute réponse.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6
Dernière modification par Ymai le 23 févr. 2009, 12:00, modifié 1 fois.
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

En fait le caractère est tout à fait valide, mais il parait que certaines implémentations de DNS ne l'accepteront pas.

Je pense que si tu désires le supprimer c'est simplement en l'enlevant dans la partie

Code : Tout sélectionner

([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])
pour donner

Code : Tout sélectionner

([a-z]|\d|-|\.|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])
Bien sûr, la vraie expression à utiliser est celle-ci :
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Validation e-mail sous jQuery Validate

Message par calimo »

Ymai a écrit :Il me semble que le caractère "underscore" n'est pas autorisé dans un nom de domaine.
Tes soupçons sont confirmés par wikipédia : http://en.wikipedia.org/wiki/Domain_name#Defined

Il y a deux fois La barre verticale veut dire "ou". En supprimant cela, tu devrais les empêcher (mais gare aux effets de bord avec une telle expression !)

Edit: un bout de citation pas citée et supprimée :oops:
Dernière modification par calimo le 23 févr. 2009, 12:38, modifié 1 fois.
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Un tout grand merci pour les réponses.
J'essaierai de comprendre l'expression rationnelle un peu plus tard :D

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités