提问者:小点点

将括号中的字符串替换为变量[重复]


我想在字符串中替换字符(用变量),这是我的示例:

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


共2个答案

匿名用户

使用正则表达式构造函数时,双转义:

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);