Javascript:new Regexp在串接字符串时销毁for循环迭代器

Javascript:new Regexp在串接字符串时销毁for循环迭代器,javascript,regex,for-loop,iterator,string-concatenation,Javascript,Regex,For Loop,Iterator,String Concatenation,我有一个叫做脚本的对象。它包含一个名为name的变量,该变量包含一个字符串 还有一个数组包含多个脚本对象,该数组称为脚本。它的尺寸是5 我有一个for循环,我想为每个与“(”连接的脚本对象的名称创建一个新的RegExp: 与 我得到了正确的输出: 0,1,2,3,4 否则,我将获得0 x 5次输出在构建RegExp之前,您需要对字符串进行转义,如下所示: var scriptName; for(var i=0; i<scripts.length; i++){ console.log

我有一个叫做脚本的对象。它包含一个名为name的变量,该变量包含一个字符串

还有一个数组包含多个脚本对象,该数组称为脚本。它的尺寸是5

我有一个for循环,我想为每个与“(”连接的脚本对象的名称创建一个新的RegExp:

我得到了正确的输出: 0,1,2,3,4


否则,我将获得0 x 5次输出

在构建
RegExp
之前,您需要对字符串进行转义,如下所示:

var scriptName;
for(var i=0; i<scripts.length; i++){
    console.log("i = "+i);
    scriptName = scripts[i].name+"(";
    // Escape for regex
    var escapedName = scriptName.replace(
        /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"
    );
    var newRegex = new RegExp(escapedName, 'g');
}
var脚本名;

for(var i=0;i
scriptName
必须是一个有效的regexp。您需要将大括号转义为
\\(
以逐字匹配它。
在RegEx中有特殊含义,当匹配
时)
在RegEx中找不到,它将抛出错误“Unterminated group”。谢谢,现在我明白了!
scriptName = scripts[i].name+"(";
scriptName = scripts[i].name;
var scriptName;
for(var i=0; i<scripts.length; i++){
    console.log("i = "+i);
    scriptName = scripts[i].name+"(";
    // Escape for regex
    var escapedName = scriptName.replace(
        /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"
    );
    var newRegex = new RegExp(escapedName, 'g');
}