Javascript: Problème avec regEx \d

frank6 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
frank6 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1
 
Merci je comprend maintenant!
1
toto
 
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