我正在使用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({
});
我需要包含什么,因此脚本使用我的自定义方法而不是电子邮件方法?
答案 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,}))$/