RegExp无法在javascript中运行

时间:2017-01-08 18:04:55

标签: javascript jquery regex

一切正常,除了正则表达式我已尝试过每个解决方案,但即使输入有效,每次其他块都会执行。

我想使用regExp验证有效的电话号码

var inputValidation = function () {
this.validation = function (para1) {
    var input = $(document).find('[data-input-validation = ' + para1 + ']');
    input.each(function () {
        $(this).keyup(function(){
            var value = $(this).val();
            var validate = new inputValidation();
            validate.validater('phoneNumber',value);

        });
    });
};

this.validater = function(param1,param2) {
    switch (param1) {
        case 'phoneNumber':
            var mobileNumber = new RegExp('/[0-9-()+]{3,20}/');
            if(mobileNumber.test(param2)){
                alert('valid');
            }
            else {
                alert('false');
            }
            break;
        }
    }
};

var validate = new inputValidation();
validate.validation('search');

2 个答案:

答案 0 :(得分:3)

您正在混合字符串正则表达式表示法和文字正则表达式表示法。只选择以下之一:

new RegExp('ab+c');
new RegExp(/ab+c/);

在你的情况下可能会这样:

var mobileNumber = new RegExp(/[0-9-()+]{3,20}/);

答案 1 :(得分:1)

表达式中的破折号需要转义。而不是:

/[0-9-()+]{3,20}/

做的:

/[0-9\-()+]{3,20}/

如果你拥有它,它会尝试从	 9'做一系列角色。到了'('它无法理解。