我正在尝试在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));

10-06 15:16