[PHP] verification d'email - expressions régulieres

verification d'email - expressions régulieres [PHP] - PHP - Programmation

Marsh Posté le 30-11-2003 à 20:54:21    

bjr a tous
 
voila, j'ai fais ça :
... ereg (".+@.+\..+$",$email_user)...
le prob c qu'un email contenant des accents sera validé, j'ai donc pensé a faire comme ça :
ereg ("[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$",$email_user)
mais ça exclu les emails contenant des "_" "-" "." ou d'autres
j'ai donc pensé a faire ça :[a-zA-Z0-9_-.]
 
mais c pas la bonne synthaxe et j'ai pas trouver dans le manuel la synthaxe pour ecrire ça....
enfin j'aimerai savoir si'il y a d'autres caracteres autorisés..
et pour apres le . (.fr ou .com) quel est le max de caracteres (4 ? .info ?)
merci pour votre aide


Message édité par DANATH le 01-12-2003 à 00:12:39
Reply

Marsh Posté le 30-11-2003 à 20:54:21   

Reply

Marsh Posté le 30-11-2003 à 21:01:30    

le max pour l'extension, vaut mieux pas le compter, on ne sait jamais ce qu'ils vont ajouter.
Il y a un .museum : http://about.museum/
Et il peut y avoir plusieurs points dans le domaine, genre
bidule@labo4.sciences.univ-machin.edu


Message édité par antp le 30-11-2003 à 21:01:55

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-11-2003 à 21:08:28    

oki merci
et pour la synthaxe avec les - . _ quelqu'un peut m'expliquer?

Reply

Marsh Posté le 30-11-2003 à 21:10:11    

autre question :
c'est utile de mettre ^ et un $  
dans mon cas?

Reply

Marsh Posté le 01-12-2003 à 00:12:44    

up

Reply

Marsh Posté le 01-12-2003 à 14:17:24    

DANATH a écrit :

bjr a tous
 
voila, j'ai fais ça :
... ereg (".+@.+\..+$",$email_user)...
le prob c qu'un email contenant des accents sera validé, j'ai donc pensé a faire comme ça :
ereg ("[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$",$email_user)
mais ça exclu les emails contenant des "_" "-" "." ou d'autres
j'ai donc pensé a faire ça :[a-zA-Z0-9_-.]


 
Il y a un problème avec la façon dont tu places ton tiret dans ta classe de caractères. Au sein d'une classe de caractères, le tiret est un méta-caractère qui sert à délimiter une plage de caractères.
Quand le moteur d'expressions régulières va passer sur _-., il va l'interprêter comme "tous les caractères de _ à ." ce qui n'est pas exactement ce que tu voulais.
Quand on veut que le tiret soit interprêté littéralement et pas comme un méta-caractère, il faut en général le place en première ou en dernière position dans la classe de caractères, de façon à montrer sans ambiguité possible qu'il faut le considérer comme un tiret.
 
Ta classe de caractères doit donc s'écrire : [a-zA-Z0-9_.-]
 
Considérant ensuite que la partie de l'url suivant le @ peut avoir une structure plus complexe que "host.suffix", il va falloir étoffer un peu.
^[a-zA-Z0-9_.-]+@([a-zA-Z0-9_-]\.)+\.[a-zA-Z]+$
 
De cette façon robert.duval@ville.universite-info.machin.edu , qui est une adresse email potentiellement valide, sera accepté.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 01-12-2003 à 14:25:24    

y a pas de "_" dans les noms de machine et dans les domaines, donc il n'y en a pas après le @


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-12-2003 à 17:32:16    

merci à vous 2, ça m'aide vraiment :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed