javascript将所有字符串和变量替换为全局
如何替换所有sting+变量?为什么我不能将所有[0]和[1]替换为新的?下面是一些简单的例子,在实际情况中,[0][1][2]。。。有更多的条件。谢谢javascript将所有字符串和变量替换为全局,javascript,replace,Javascript,Replace,如何替换所有sting+变量?为什么我不能将所有[0]和[1]替换为新的?下面是一些简单的例子,在实际情况中,[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); 我会这样做: var a='some thing [0] [1] [0] [1]
var a='some thing [0] [1] [0] [1] ';
for(var i=0; i<3; i++){
a.replace(new RegExp(" ["+i+"] ", 'g'),' new');
}
alert(a);
我会这样做:
var a='some thing [0] [1] [0] [1] ';
a = a.replace(/\[[0-2]\]/g,' new');
alert(a);
在这里,for循环是多余的,因为正则表达式可以直接完成它。另外,我建议使用文字语法/../../
工作小提琴:我会这样做:
var a='some thing [0] [1] [0] [1] ';
a = a.replace(/\[[0-2]\]/g,' new');
alert(a);
在这里,for循环是多余的,因为正则表达式可以直接完成它。另外,我建议使用文字语法/../../
工作小提琴:因为
一,
正则表达式现在是0[0]的示例;这将匹配0您可能正在查找\\[+i+\\],因为括号是一个特殊字符
二,
您没有存储替换结果,您应该执行以下操作:
a=a.replacenew 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);
一些新的东西,我希望这是预期的结果
最后但并非最不重要的一点是,这是对正则表达式的滥用,您可以很容易地做到
一,
正则表达式现在是0[0]的示例;这将匹配0您可能正在查找\\[+i+\\],因为括号是一个特殊字符
二,
您没有存储替换结果,您应该执行以下操作:
a=a.replacenew 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);
一些新的东西,我希望这是预期的结果
最后但并非最不重要的一点是,这是对正则表达式的滥用,您可以轻松地将[and]之间的所有数字替换为新的
将[和]之间的所有数字替换为新数字 字符串是不可变的,replace会返回新的、修改过的值。您必须自己将其重新分配给a变量,请参见: 不过,这还不足以让它工作,因为[]在正则表达式中表示a。要从字面上匹配它们,您必须使用反斜杠转义它们,并再次使用字符串文字:
a = a.replace(new RegExp(" \\["+i+"\\] ", 'g'), ' new');
现在,您可以使用实际的字符类一次匹配0到2之间的所有数字:
var a = 'some thing [0] [1] [0] [1] ';
alert(a.replace(/\[[0-3]\]/g, ' new')); // regex literal to simplify syntax
字符串是不可变的,replace会返回新的、修改过的值。您必须自己将其重新分配给a变量,请参见:
不过,这还不足以让它工作,因为[]在正则表达式中表示a。要从字面上匹配它们,您必须使用反斜杠转义它们,并再次使用字符串文字:
a = a.replace(new RegExp(" \\["+i+"\\] ", 'g'), ' new');
现在,您可以使用实际的字符类一次匹配0到2之间的所有数字:
var a = 'some thing [0] [1] [0] [1] ';
alert(a.replace(/\[[0-3]\]/g, ' new')); // regex literal to simplify syntax