JavaScript中的动态正则表达式生成

JavaScript中的动态正则表达式生成,javascript,regex,Javascript,Regex,我试图通过使用参数使我的正则表达式通用化。但是,当我使用变量时,RegExp不起作用: 下面的正则表达式在我将输入限制为7个字符的情况下正常工作 var specialCharactersValidation = new RegExp(/^[a-zA-Z0-9]{7}$/); 但当我把它变成一般性的: var characterCount = parseInt(attrs.limitCharacterCount); // Value is 7 and type is int console.l

我试图通过使用参数使我的正则表达式通用化。但是,当我使用变量时,RegExp不起作用:

下面的正则表达式在我将输入限制为7个字符的情况下正常工作

var specialCharactersValidation = new RegExp(/^[a-zA-Z0-9]{7}$/);
但当我把它变成一般性的:

var characterCount = parseInt(attrs.limitCharacterCount); // Value is 7 and type is int
console.log(characterCount); // Value is 7
var specialCharactersValidation = new RegExp(/^[a-zA-Z0-9]{characterCount}$/);
这是上面代码的控制台。正则表达式不使用字符计数编译

7
requestShipmentDirectives.js:73 /^[a-zA-Z0-9]{characterCount}$/ false
这是行不通的。下面这一条也没有:

var characterCount = parseInt(attrs.limitCharacterCount); // Value is 7 and type is int
console.log(characterCount); // Value is 7
var specialCharactersValidation = new RegExp("/^[a-zA-Z0-9]{"+characterCount+"}$/");
这是上面代码的控制台:

7
9requestShipmentDirectives.js:73 /\/^[a-zA-Z0-9]{7}$\// false
RegExp
可以编译,但从不工作

输出总是
false


是否缺少任何内容?

您应该使用不带
/…/
RegExp来允许在正则表达式中使用变量,例如:

var specialCharactersValidation = new RegExp("^[a-zA-Z0-9]{" + characterCount + "}$");
和内部的双转义特殊字符

发件人:

文字表示法提供正则表达式的编译 计算表达式时。当 正则表达式将保持不变。例如,如果您使用 用于构造循环中使用的正则表达式的文字表示法 正则表达式不会在每次迭代时重新编译

谢谢。这是有效的:)var specialCharactersValidation=newregexp(“^[a-zA-Z0-9]{“+characterCount+”}$”;