javascript用全局替换所有字符串和变量

标签 javascript replace

如何替换所有字符串+变量?为什么我无法将所有 [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);

http://jsfiddle.net/P8HSA/

最佳答案

因为

#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/

相关文章:

javascript - 悬停的元素宽度会扩展,以便它可以容纳其中的所有内容

javascript - Guacamole VNC 文件传输

javascript - 我可以告诉 Closure 编译器仅针对特定类型停止重命名属性吗?

regex - 如何使用正则表达式使用 Powershell 替换文本文件中的日期

javascript - 如何获取数组中出现频率最高的项目(数字或字符串)?

javascript - getInstalledRelatedApps() API 未检测到已安装的应用程序

css - 如何用 CSS 替换文本?

javascript - 使用 replace 方法用字符串替换变量中出现的内容

jquery - 替换dom元素中的所有字符串

javascript - 用多个其他字符串替换多个字符串