使用 Jquery 插件提交表单时如何在“.(点)”之后验证电子邮件

use*_*234 3 javascript validation jquery

我正在尝试验证具有电子邮件地址的表单,其 prop 设置为“true”,如图所示:

$( "#myform" ).validate({
  rules: {
   field: {
    required: true,
     email: true
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我检查了 jquery 插件http://jqueryvalidation.org/email-method/并且我看到电子邮件地址仅在“@”符号(上面链接中的示例)之前得到验证。我正在制作一个电子邮件验证脚本,它基本上只检查完整的电子邮件地址,包括末尾的“点”。任何想法如何实现这一目标?

http://jsfiddle.net/dbnkahee/1/

Moh*_*mar 7

您可以使用正则表达式添加jQuery.validator.addMethod试试这个:-

jQuery.validator.addMethod("emailfull", function(value, element) {
 return this.optional(element) || /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i.test(value);
}, "Please enter valid email address!");
Run Code Online (Sandbox Code Playgroud)

然后将其用作:-

$( "#myform" ).validate({
  rules: {
  field: {
   required: true,
   emailfull: true
 }
 }
});
Run Code Online (Sandbox Code Playgroud)

正则表达式由 aSeptik 看到这个答案

演示

其他正则表达式