Regex vite fait controle email

Résolu/Fermé
lanou - 19 juil. 2010 à 09:36
 lanou - 19 juil. 2010 à 10:06
Bonjour,

alors, pour faire simple j'aimerais vérifier le format (très grossièrement) d'une adresse e-mail, j'ai trouvé quelques solutions mais je pense pas que ca me soit vraiment destiné les expression de 3 lignes de long, c'est simplement pour faire un petit peu propre :)

Je veux juste une adresse comme ceci : nimporte_quoi_@_tout_sauf_un_point_._2ou3_caractère

donc j'en suis arrivé a quelque chose comme ca : #^[^@]+@.+[.][a-z]{2,3}$#i

Ca a l'air de fonctionner même avec plusieurs point après mon @, et c'est justement ca qui m'inquiète, est ce que ca va toujours tomber juste dans le cas ou il y a plusieurs point après mon @ ?

J'ai un peu de mal a saisir comment l'expression s'y prend pour différencier les point(n'importe quoi) des point(caractère) car même en supprimant la dernière partie de mon expression [a-z]{2.... elle arrive quand même a s'arreter au niveau du dernier point.

voila si quelqu'un peut m'éclairer sur ces deux point je le remercie d'avance :)
A voir également:

2 réponses

Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 19/07/2010 à 09:47
Essaye la même syntaxe que pour le @ : #^[^@]+@[^.]+[.][a-z]{2,3}$#i

L'expression régulière considère tes "." supplémentaire comme des caractères correspondant à ton ".+" ca donne donc => (tout sauf @)@(n'importe quoi).(2-3 lettres) ce "n'importe quoi peut contenir plusieurs points.
0
ok, mais c'est justement ca que j'ai du mal a saisir, si mon (n'importe quoi) peut contenir plusieurs points, pourquoi le dernier n'est pas englobé dans le tas ? enfin je suppose qu'elle évalue la chaine de caractère du début a la fin et pas dans son ensemble non ?
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
19 juil. 2010 à 09:59
Le dernier n'est pas englobé dans le tas pour la bonne et simple raison que tu as précisé que ton expression se finissais un point ([.]) suivi de 2-3 lettres il est donc bien obligé de ne pas classé ton dernier point dans ce que j'ai appelé (n'importe quoi) pour respecter tes contraintes.
0
ok c'est plus clair maintenant, merci pour tes réponses et ta rapidité :)
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
19 juil. 2010 à 09:51
Ah si tu veux plusieurs points alors utilise #^[^@]+@(?:[^.]+[.])+[a-z]{2,3}$#i
0