Problème de RegEx [Résolu]

Signaler
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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à ;)
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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