Page 1 sur 1
petit problème de reagex
Posté : 24 oct. 2006, 11:59
par jojolapine
Bonjour à tous,
j'ai repris les regex qui sont déja dans le tuto sur la validation d'un formulaire complexe...
et j'ai un petit problème avec celui qui vérifi si une adresse e-mail est correcte:
Code : Tout sélectionner
#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#
ce masque n'autorise pas les adresses du type:
[email protected]
alors que je connais des personnes qui ont ce type d'adresses, et je n'arrive pas à autoriser le tiret dans la seconde partie...
merci d'avance
Posté : 26 oct. 2006, 16:29
par goeb
Salut,
chez moi ça marche, avec preg_match. Est-ce que tu utilises bien cette fonction ?
Posté : 26 oct. 2006, 16:37
par jojolapine
oui oui:
code de test:
$email="[email protected]";
$email2="[email protected] ";
if(preg_match("#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#",$email)) echo 'email1: ok!';
if(preg_match("#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#",$email2)) echo 'email2: ok!';
me met l'email 1 ok et pas l'email 2
Posté : 27 oct. 2006, 10:28
par goeb
c'est normal, tu as un espace à la fin de $email2 !
Posté : 27 oct. 2006, 10:35
par jojolapine
ah oui c'est vrai

pardon, seulement, je n'arrive toujours pas à valider mon mail, et je me rend compte, que ce n'est finalement pas le tiret qui gène, mais le nombre de lettres avant le @
cet email:
$email2="
[email protected]"; ne marche pas,
pourtant dans le masque, il y a un +, qui il me semble veut dire 1 et plus non ?
Posté : 27 oct. 2006, 11:00
par Ryle
C'est à cause de tes caractères interdits avant et après : [^-_\.]
Il attend donc au minimum 3 caractères, le premier et le dernier ne faisant pas partie de ce masque

Posté : 27 oct. 2006, 11:08
par jojolapine
merci c'est bon, j'ai résolu le problème avec une * à la place de +
Mais je me demandai une chose, il y a un endroit ou l'on dit comment doit être une adresse email?
Posté : 27 oct. 2006, 11:19
par Ryle
Pour la syntaxe, tu devrais trouver ton bonheur dans la RFC822 (si tu as le courage de l'éplucher)

Et puis pour l'usage, y a une norme ISO, mais qui n'apporte rien de plus...
Posté : 27 oct. 2006, 11:34
par Cyrano
À propos de la RFC 822, on en trouve
une traduction en français sur le net
Posté : 27 oct. 2006, 19:08
par jojolapine
euh bon c'est un peu compliqué quand même

mais merci quand même
