如何替换所有字符串+变量?为什么我无法将所有 [0]
和 [1]
替换为 new
?这是一些简单的例子,在实际情况下,[0][1][2]...有更多条件。谢谢。
var a='some thing [0] [1] [0] [1] ';
for(var i=0; i<3; i++){
a.replace(new RegExp(" ["+i+"] ", 'g'),' new');
}
alert(a);
最佳答案
因为
#1
您的正则表达式现在是(例如 0 [0]
);这将匹配 <space>0<space/>
您可能正在寻找" \\["+i+"\\] "
因为括号是特殊字符,
#2
您没有存储替换的结果,您应该这样做:
a = a.replace(new RegExp(" \\["+i+"\\] ", 'g'),'new');
结合起来,你就得到了
var a='some thing [0] [1] [0] [1] ';
for(var i=0; i<3; i++){
a = a.replace(new RegExp(" \\["+i+"\\] ", 'g'),'new');
}
alert(a);
Which outputs (Fiddle) some thingnewnewnewnewnew
我希望这是预期的结果。
最后但并非最不重要的一点是,这是对正则表达式的滥用,您可以轻松 have a one line solution .
关于javascript用全局替换所有字符串和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561810/