我正在尝试在javascript中使用常规expession,但无法正常工作。我的自定义控件包含一个称为RegEx的属性,该属性由用户提供,我需要针对此regex验证输入值。由于JS中的属性将用双引号(“”)引起,因此正则表达式将失败(情况-1)。案例2成功了,因为两个案例的正则表达式都是相同的,唯一的区别是案例1作为双引号。有人可以告诉我为什么它不起作用。
RegexExp =“ / ^ \ d {5} $ /”-在我的aspx页面上
var value = "11111";
if(value.toString().search($(element).attr('RegexExp')) != -1)
{
return true;
}
else
{
return false;
}
var reg = /^\d{5}$/;
if(value.toString().search(reg) != -1)
{
return true;
}
else
{
return false;
}
最佳答案
而是这样做:
var reg = new RegExp($(element).attr('RegexExp'));
更新:您还需要去除/字符,因为不应将这些字符提供给RegExp构造函数:
var regexExp = $(element).attr('RegexExp');
var reg = new RegExp(regexExp.substring(1, regexExp.length - 1));