使用变量时,在正则表达式中转义方括号?

Joe*_*ani 4 javascript regex replace

我有这个代码来替换所有打开和关闭方括号,里面有一个匹配的变量:

for (var j = 0; j <= temp.length; j++) {
    var re = new RegExp("["+j+"]", 'g');
    imgData = imgData.replace(re, temp[j]);
}
Run Code Online (Sandbox Code Playgroud)

该行var re = new RegExp("["+j+"]", 'g');不起作用,因为我假设括号没有被转义.有谁知道我会如何逃避它们,但仍然能够在模式中有一个变量?谢谢!:)

Vis*_*ioN 10

你应该用反斜杠来逃避它:

var re = new RegExp("\\[" + j + "\\]", "g");
Run Code Online (Sandbox Code Playgroud)