我想在字符串中替换字符(用变量),这是我的示例:
var oldId = 5;
var newId = 6;
var content = 'text tes_5 as name[5] end';
content = content.replace(new RegExp('name\['+oldId+'\]', 'g'), 'name['+newId+']');
为什么文本tes_5为name[5]end
?
使用正则表达式构造函数时,双转义:
var oldId = 5;
var newId = 6;
var content = 'text tes_5 as name[5] end';
content = content.replace(new RegExp('name\\['+oldId+'\\]', 'g'), 'name['+newId+']');
console.log(content);
您需要转义反斜杠,因为反斜杠是字符串文字和正则表达式的转义字符。
var oldId = 5;
var newId = 6;
var content = 'text tes_5 as name[5] end';
content = content.replace(new RegExp('name\\['+oldId+'\\]', 'g'), 'name['+newId+']');
console.log(content);