Problème de RegEx

Résolu
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 4 oct. 2010 à 12:21
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 4 oct. 2010 à 14:49
Salut,

J'ai une fonction pour tester la validité de la syntaxe d'une adresse email qui vient pour l'essentiel d'ici
Avec certaines valeurs, j'obtiens des résultats différents entre mes deux PC. La différence entre les deux est uniquement la version du navigateur Firefox 3.6.10 et 3.6.8
En l'occurrence, le plus récent me donne les résultats attendus, tandis que l'autre, non...

Voici ma fonction :

function verif_email(email) {
    var reg = new RegExp('^[a-z0-9_%+-]+[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}$', 'i');
    return reg.exec(email);
}


J'utilise exec() pour l'instant, pour voir concrètement la correspondance trouvée : test() donne les mêmes résultats.

Voici une adresse email non valide qui ne passe pas sur le navigateur à jour, mais qui passe sur le FF 3.6.8 : nom.prenom@gmail
Plus surprenant, nom.prenom@gma ne passe pas, sur aucun des deux. J'ai comme l'impression que Firefox 3.6.8 ne tient pas compte de l'échappement du point dans le nom de domaine...

Est-ce qu'il y a une explication rationnelle à cette histoire ou bien est-ce mon expression régulière qui est mal formée ?

Merci d'avance

--
Neige

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
4 oct. 2010 à 14:49
En fin de compte, j'utilise la syntaxe :
var reg = /^[a-z0-9_%+-]+[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}$/i;

qui fonctionne correctement... Je ne comprends pas pourquoi, mais bon...

Désolé d'avoir pollué avec mon monologue ^^

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
4 oct. 2010 à 12:55
Au temps pour moi... La RegEx fonctionne de la même manière sur mes deux pc... Sauf que... elle fonctionne parfaitement ici : http://www.regular-expressions.info/javascriptexample.html

En local avec une page à moi, je suis obligé d'échapper l'antislash...
Comme ça, ça fonctionne :
^[a-z0-9_%+-]+[a-z0-9._%+-]+@[a-z0-9.-]+\\\.[a-z]{2,6}$


J'ai du mal à comprendre... Quelle différence entre mon code et celui du testeur en ligne sus-cité induit cette différence de comportement ?

--
Neige
0
Rejoignez-nous