我正在尝试使用jQuery和正则表达式在客户端验证我的电子邮件地址字段,但有些原因导致javaScript因正则表达式中的语法错误而抱怨
@((?:[\w-]+\.)*\w[\w-]{0,66})
出自
/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
$('.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>');
}
});
答案 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));