如何在javascript中替换包含sqare括号的字符串?

时间:2016-06-08 11:19:28

标签: javascript string replace

如何在JavaScript中用另一个替换字符串值?

我有一个包含很多子字符串的字符串 - Items[0]。考虑到' 0'如何将所有这些替换为Items[1]。是一个从变量中得到的动态值。

我使用了替换方法,并尝试了一些' RegExp'但是无法做到这一点。我认为是因为那些方括号:

str.replace(new RegExp("Items[" + j + "]", "g"), "Items[" + (j - 1) +"]"));

感谢任何帮助。谢谢:))

1 个答案:

答案 0 :(得分:1)

使用new RegExp创建正则表达式。在正则表达式中,您必须使用\来转义[,否则它具有特殊含义。由于您将不得不使用字符串来创建正则表达式(因为您需要包含变量的值),因此必须转义\字符串,所以我们最终得到两个:



var variable = 0;
var rex = new RegExp("\\[" + variable + "]", "g");
var str = "This has Item[0] in more than one Item[0] place.";
var str = str.replace(rex,   "Item[" + (variable + 1) + "]");
// If you want a dynamic replacement ^^^^^^^^^^^^^^^^^^^
// In this case, I used the value plus one.
console.log(str);




"g"是一个标志,意思是"全球" (整个字符串,而不仅仅是第一次出现)。