petit problème de reagex

ViPHP
ViPHP | 3607 Messages

24 oct. 2006, 11:59

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

Eléphant du PHP | 413 Messages

26 oct. 2006, 16:29

Salut,
chez moi ça marche, avec preg_match. Est-ce que tu utilises bien cette fonction ?
--
Goeb

ViPHP
ViPHP | 3607 Messages

26 oct. 2006, 16:37

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

Eléphant du PHP | 413 Messages

27 oct. 2006, 10:28

c'est normal, tu as un espace à la fin de $email2 !
--
Goeb

ViPHP
ViPHP | 3607 Messages

27 oct. 2006, 10:35

ah oui c'est vrai :oops: 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 ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 11:00

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 3607 Messages

27 oct. 2006, 11:08

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?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 11:19

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...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 19672 Messages

27 oct. 2006, 11:34

À propos de la RFC 822, on en trouve une traduction en français sur le net
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 3607 Messages

27 oct. 2006, 19:08

euh bon c'est un peu compliqué quand même #-o mais merci quand même :lol: