Javascript 用变量替换括号之间的字符串

Javascript 用变量替换括号之间的字符串,javascript,regex,replace,Javascript,Regex,Replace,我想替换字符串中的字符(使用变量),下面是我的示例: 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+']'); 为什么结果是text tes_5 as name[5]end?使用正则表达式构造函数时,双转义: var oldId=5; v

我想替换字符串中的字符(使用变量),下面是我的示例:

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+']');

为什么结果是
text tes_5 as name[5]end

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

var oldId=5;
var-newId=6;
变量内容='text tes_5 as name[5]end';
content=content.replace(new RegExp('name\\['+oldId+'\\\]','g'),'name['+newId+']);

控制台日志(内容)您需要转义反斜杠,因为反斜杠是字符串文字和正则表达式的转义字符

var oldId=5;
var-newId=6;
变量内容='text tes_5 as name[5]end';
content=content.replace(new RegExp('name\\['+oldId+'\\\]','g'),'name['+newId+']);

控制台日志(内容)很可能:您的正则表达式与任何内容都不匹配,并且没有任何内容被替换。