Vérifier email avec une regex javascript

WRInaute discret
Hello,

J'utilise la regex suivante pour vérifier la syntaxe des emails en javascript :

Code:
/^((\w+\+*\-*)+\.?)+@((\w+\+*\-*)+\.?)*[\w-]+\.[a-z]{2,6}$/i

( je ne suis pas l'auteur )

Le problème est qu'elle laisse passé ceci :

test.@test.com
et
test@.test.com

Est ce que quelqu'un aurait une regex javascript de verification d' email qui soit efficace ?
 
WRInaute impliqué
Validation d'adresse email conformément au spécification de la RFC 2822 : http://seebz.net/notes/?note_id=46
 
WRInaute discret
seebz a dit:
Validation d'adresse email conformément au spécification de la RFC 2822 : http://seebz.net/notes/?note_id=46

Merci.
Dans l'abolus ca serait la regex parfaite.

Seulement la norme officiel RFC 2822 autorise des symboles que quasi aucun webmail digne de ce nom n'autorise, par exemple :

Code:
!$./'@test.com est valide  :(

Mais bon merci ca donne une base je suis en train d'essayé de la modifier.
 
WRInaute accro
Sauf si elle est doublée côté serveur... Le mieux étant de le faire en ajax, tu fais les 2 en même temps comme ça ^^
 
WRInaute occasionnel
Oui pis si j'ai payé ma mémé pour vérifier manuellement les inscription...

On parle de JS... Si tu le fais coté serveur, pas besoin de js.

Mai sinon, fais le pour tout.
Un test js, un test ajax, puis un test html ?, un test php, puis asp, puis python...
 
WRInaute passionné
Je rejoins un peu l'avis de Ehplod, encore un js en plus (+) pour au final devoir le revérifier en PHP qui fait ça très bien avec filter_var.
 
WRInaute passionné
Ehplod a dit:
Oui pis si j'ai payé ma mémé pour vérifier manuellement les inscription...

On parle de JS... Si tu le fais coté serveur, pas besoin de js.

Mai sinon, fais le pour tout.
Un test js, un test ajax, puis un test html ?, un test php, puis asp, puis python...
le js, ca permet d'eviter de perdre le contenu du formulaire aprés envoie et devoir tout resaisir... c'est donc surtout pour avertir les tetes en l'air, la verif coté serveur, mais pour ceux qui ont reussi a contourner le javascript ou bien qui l'on desactivé.
 
WRInaute occasionnel
forummp3 a dit:
Ehplod> relis le topic avec le doigt
... et ?
J'ai relu 15x...

Un type veux faire un contôle d'adresse mail via un js.
blablabla...
Le js peut être désactivé par l'internaute.

Je relis encore ?
 
WRInaute passionné
ben je n'ai jamais dis qu'il ne fallait pas utiliser php ...

js c'est pour le confort de ne pas recharger 10x la page si l'on fait 10 erreurs dans le formulaire (c'est un cas extreme, ne commence pas a me dire "blabla, ca arrive assez rarement, blabla, ca sert a rien), puis le php c'est pour la sécurité, car on peut desactiver le js.
 
WRInaute discret
Ehplod a dit:
Toute vérification sécuritaire en javascript est une absurdité...

Ca n'a rien à voir avec la question.


Ehplod a dit:
Oui pis si j'ai payé ma mémé pour vérifier manuellement les inscription...

On parle de JS... Si tu le fais coté serveur, pas besoin de js.

Mai sinon, fais le pour tout.
Un test js, un test ajax, puis un test html ?, un test php, puis asp, puis python...

C'est pour avertir la personne que je ne pourrais lui répondre AVANT l'envoi du formulaire, je sais bien que tu pars d'un bon sentiment mais encore une fois tu as tort, le js est très utile dans de nombreux cas, inutile de nous avertir que l'utilisateur lambda peut le désactiver sur son navigateur, on est est tous conscient et je le repete, ce n'est pas la question.



Julia41 a dit:
Je rejoins un peu l'avis de Ehplod, encore un js en plus (+) pour au final devoir le revérifier en PHP qui fait ça très bien avec filter_var.

Hello Julia41,

Petite parenthèse même si encore une fois je ne parlais pas de PHP, filter var est très très mauvais dans la filtrage des adresses emails, je t'invite à faire quelques tests et tu verra qu'on peut clairement pas lui faire confiance.


forummp3 a dit:
lc'est donc surtout pour avertir les tetes en l'air, la verif coté serveur, mais pour ceux qui ont reussi a contourner le javascript ou bien qui l'on desactivé.

100 % d'accord c'est parfaitement ca, tout est dit.
 
WRInaute passionné
Julia41 a dit:
Je rejoins un peu l'avis de Ehplod, encore un js en plus (+) pour au final devoir le revérifier en PHP qui fait ça très bien avec filter_var.

Hello Julia41,

Petite parenthèse même si encore une fois je ne parlais pas de PHP, filter var est très très mauvais dans la filtrage des adresses emails, je t'invite à faire quelques tests et tu verra qu'on peut clairement pas lui faire confiance.[/quote]

Ca respecte scrupuleusement les RFC et c'est surtout bien plus performant que toute fonction maison.
 
WRInaute discret
Les spécification de la RFC 2822 ne reflete absolument pas l'utilisation courante de tout les webmails les plus connus. ( je ne sais pas pourquoi d'ailleurs si quelqu'un a une explication... )
Respecter rigoureusement les RFS dans la vérification d'emails est une très très mauvaise idée a mon humble avis car :

!$./'$#$%&'*+/=?^_`{|}~-\@test.com

est valide.
 
WRInaute passionné
Quand tu est bloqué en prog, il faut alors te poser la question en français, puis la traduire dans ton language de prog.

Tu as ta regex:

/^((\w+\+*\-*)+\.?)+@((\w+\+*\-*)+\.?)*[\w-]+\.[a-z]{2,6}$/i

Ton probleme, c'est que tu ne veux pas de point devant ton arobase et aprés, c'est ça ?

et bien tu rajoute [[:alphanum:]]? juste devant ton arobase et derriere.

J'ai pas testé, mais normalement, ca devrait marché (a voir si [[:alphanum:]] marche avec js, en tout cas avec php ca marche).
 
WRInaute accro
Ehplod a dit:
OK, donc, c'est une vérif' contre les erreurs de frappe en quelque sorte...
Une erreur contre "les petites frappes" ...

plus serieusement tu en connais beaucoup qui désactivent le javascript sur leur navigateur ? Franchement, à l'ère du Web 2.0, il n'y a plus guère que les sites neu neu de base qui n'utilisent pas du tout de javascript ... :wink:
 
WRInaute occasionnel
Je ne dis pas, mais c'est risqué de faire de la sécurisation en JS.

Mais finalement, ce n'était pas de la sécu dont Mich parlait.


Par contre, j'te le dis tout net, il y a des sites sur lesquel perso, je désactive, tellement ça met du temps à me laisser la main lorsque je surf dessus.
 
WRInaute accro
je ne connaissais pas, mais sympa cette fonction php.
Va falloir que je vérifie son fonctionnement, mais ça pourrait me permettre de bien simplifier mes scripts
ça a l'air, même, de pouvoir remplacer certaines options de htmlentities :D
 
WRInaute impliqué
Oui, j'ai découvert ca il y a peu et ca marche vraiment bien.

Apparement il y aurait quelque bug ( dixit les commentaires sur php.net ), je sais pas exactement quoi.

En tout cas la verification d'email est beaucoup plus fiable que les différents regex qui traine sur le net, certain email ne passe pas sur les regex alors qu'ils sont valide.

Et entre nous, franchement il était grand temps pour PHP d'avoir sa fonction officiel de vérification d'email.
 
WRInaute accro
oui, mais cette fonction semble bien plus puissance que la seule vérification d'email, car elle remplacerait htmlentities et, possiblement, les vérifications d'injection de codes...
 
Discussions similaires
Haut