电子邮件验证正则表达式出错

时间:2015-05-26 07:44:20

标签: javascript jquery email-validation

我正在尝试使用jQuery和正则表达式在客户端验证我的电子邮件地址字段,但有些原因导致javaScript因正则表达式中的语法错误而抱怨

@((?:[\w-]+\.)*\w[\w-]{0,66})

出自

/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

jQuery函数

$('.emailField').change(function () {

    var inputVal = $(this).val();

    var emailReg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

    if (!emailReg.test(inputVal)) {

        $(this).after('<span class="error error-keyup-7">Invalid Email Format.</span>');
    }

});

enter image description here

2 个答案:

答案 0 :(得分:1)

使用JavaScript RegExp构造函数属性尝试使用以下代码。阅读更多 here

var emailReg = new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i);
if (!emailReg.test(inputVal)) {
      $(this).after('<span class="error error-keyup-7">Invalid Email Format.</span>');
}

答案 1 :(得分:1)

我为此创建了单独的插件,并在我的局部视图中调用它并且有效!

(function ($) {

   $.fn.validateEmail = function (_email) {

      alert(_email);

      var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

      return re.test(_email);
   };

}(jQuery));