J'essaie ceci:
str = "bla [bla]";
str = str.replace(/\\[\\]/g,"");
console.log(str);
Et le remplacement ne fonctionne pas, qu'est-ce que je fais mal?
UPDATE: J'essaie de supprimer les crochets de la chaîne. Ce qui est bizarre, c'est que si je le fais
replace(/\[/g, '')
replace(/\]/g, '')
ça marche, maisreplace(/\[\]/g, '');
Non.
Vous devez sortir du crochet, comme \[
et \]
. Découvrez http://regexpal.com/ . C'est très utile :)
Pour remplacer tous les crochets dans une chaîne, cela devrait faire le travail:
str.replace(/\[|\]/g,'');
J'espère que ça aide.
Hristo
Qu'est-ce que vous essayez de faire correspondre exactement?
Si vous n'échappez pas aux crochets, ils sont considérés comme des classes de caractères. Ce:
/[1\\]/
Correspond à un 1 ou à une barre oblique inverse. Vous voudrez peut-être y échapper avec une seule barre oblique inverse:
/\[1\]/
Mais cela ne correspondra pas non plus, car vous n'avez pas de [1]
dans votre chaîne.
Deux barres obliques inverses produisent une seule barre oblique inversée. Vous recherchez donc "une barre oblique inversée, suivie d'une classe de caractères composée d'un 1
ou d'un right bracket
, puis il vous manque un crochet de fermeture.
Essayer
str.replace(/\[1\]/g, '');