Regex vite fait controle email

Résolu
lanou -  
 lanou -
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   Statut Membre Dernière intervention   70
 
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
lanou
 
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   Statut Membre Dernière intervention   70
 
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
lanou
 
ok c'est plus clair maintenant, merci pour tes réponses et ta rapidité :)
0
Leviathan49 Messages postés 257 Date d'inscription   Statut Membre Dernière intervention   70
 
Ah si tu veux plusieurs points alors utilise #^[^@]+@(?:[^.]+[.])+[a-z]{2,3}$#i
0