Javascript: Problème avec regEx \d

Fermé
frank6 Messages postés 5 Date d'inscription mercredi 27 août 2008 Statut Membre Dernière intervention 25 avril 2010 - 27 août 2008 à 23:59
frank6 Messages postés 5 Date d'inscription mercredi 27 août 2008 Statut Membre Dernière intervention 25 avril 2010 - 28 août 2008 à 15:34
Bonjour,

J'éprouve un problème comprhension.. pourquoi est-ce quand je test cette expression régulière :

pattern = "[0-9]{1}"
reg = new RegExp(pattern, "gi")
reg.test("1") // retourne TRUE

mais quand je fais de cette façon ça ne fonctionne pas..

pattern = "\d{1}"
reg = new RegExp(pattern, "gi")
reg.test("1") // retourne FALSE

2 réponses

frank6 Messages postés 5 Date d'inscription mercredi 27 août 2008 Statut Membre Dernière intervention 25 avril 2010 1
28 août 2008 à 15:34
Merci je comprend maintenant!
1
Bonjour

Quand tu écris
pattern = "\d{1}" 
en javascript, ta chaine ne contient pas de \. Elle contient d{1}
En javascript, le caractère antislash sert à insérer certains caractères spéciaux dans les chaînes de caractères ( fin de ligne, codes hexadécimaux...). Pour réellement mettre un antislash dans ta chaîne, il faut le doubler :
pattern = "\\d{1}" 
Ceci est très bien expliqué dans tous les manuels de javascript, par exemple : http://developer.mozilla.org/fr/Guide_JavaScript_1.5/Constantes_litt%c3%a9rales
0

Discussions similaires