使用Jquery.validate.js验证电子邮件地址的格式

时间:2014-07-08 05:37:46

标签: jquery jquery-validate

我正在使用jquery.validate.js来验证公式的电子邮件输入。

它运行良好,但我很惊讶它的电子邮件除外,其格式如下:name @ domain

在我看来,缺少.TLD,没有?

我检查了jquery.validate.js文件中的函数。他们引用www.whatwg.org的规范来获取有效的电子邮件地址。在网站上,它说有效的电子邮件地址应该具有格式name@doman.tld

jquery.validate.js中的JS Regex如下:

email: function( value, element ) {
    return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
},

如何使用自定义正则表达式来验证电子邮件是否包含.TLD?

我将自定义验证方法指定如下:

jQuery.validator.addMethod("customemail", function(value, element) {
    return this.optional(element) || /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value);
}, "Please enter a valid email address.");

验证表单的功能如下:

$("#subscription-form").validate({
});

我需要包含什么,因此脚本使用我的自定义方法而不是电子邮件方法?

1 个答案:

答案 0 :(得分:0)

试试这个Regex

/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/