-
RegExp et ^
Bonjour à tous ! :D
A nouveau un petit problème au niveau de la définition d'une expression régulière. Je cherche, dans une chaîne de caractères, à remplacer les caractères suivants :"/?\()][^". Voici mon code :
Code:
var2 = var1.replace(/([\)\]\[\(\?\/\\])/g,"[\$1]");
Avec ça, pas de problème.
Mais dès lors ou je rajoute "\^" dans la définition de ma RegExp, le navigateur me retourne une erreur ("]" attendu dans l'expression régulière - sous IE). :(
Comment faire pour que le caractère "^" soit interprété littéralement ? (j'avais lu que placer un "\" devant suffisait... Mais apparemment non).
Merci d'avance.
-
Ben tu le mets tout simplement. S'il n'est pas au début de ta classe de caractères, il n'est pas considéré comme caractère spécial.
D'ailleurs c'est vrai pour les autres également
Code:
var2 = var1.replace(/([\)\][(?\/\\^])/g,"[\$1]");
-
En fait mon erreur ne venait pas de cette RegExp, mais d'une autre définie à partir de celle-ci ! Et il fallait que j'ajoute un deuxième "\" devant le $1 :
Code:
var2 = var1.replace(/([\)\][(?\/\\^])/g,"[\\$1]");
Et effectivement dans ce cas ta syntaxe fonctionne correctement.
Merci pour ta réponse ! :wink: