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

Error in email validation regular expression

我正在尝试使用 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>');
    }

});

使用 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>');
}

我已经为此创建了单独的插件并在我的部分视图中调用并且它起作用了!

(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));