JavaScript中的动态正则表达式生成
我试图通过使用参数使我的正则表达式通用化。但是,当我使用变量时,RegExp不起作用: 下面的正则表达式在我将输入限制为7个字符的情况下正常工作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
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+”}$”;