如何在JavaScript中用另一个替换字符串值?
我有一个包含很多子字符串的字符串 - Items[0]
。考虑到' 0'如何将所有这些替换为Items[1]
。是一个从变量中得到的动态值。
我使用了替换方法,并尝试了一些' RegExp'但是无法做到这一点。我认为是因为那些方括号:
str.replace(new RegExp("Items[" + j + "]", "g"), "Items[" + (j - 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"
是一个标志,意思是"全球" (整个字符串,而不仅仅是第一次出现)。