使用jQuery进行电子邮件validation

我是新来的jQuery,想知道如何使用它来validation电子邮件地址。

你可以使用普通的老javascript:

function isEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); } 

jQuery函数来validation电子邮件

我真的不喜欢使用插件,特别是当我的表单只有一个领域需要validation。 我使用这个函数,并在需要validation电子邮件表单字段时调用它。

  function validateEmail($email) { var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; return emailReg.test( $email ); } 

现在用这个

 if( !validateEmail(emailaddress)) { /* do stuff here */ } 

干杯!

我会使用jQueryvalidation插件有几个原因。

你validation了,好吧,现在呢? 你需要显示错误,处理有效的时候擦除它,总共显示多less错误? 有很多事情可以为你处理,不需要重新发明轮子。

而且,CDN上托pipe了另一个巨大的好处,那就是可以在这里find当前版本的答案 : http : //www.asp.net/ajaxLibrary/CDNjQueryValidate16.ashx这意味着更快的客户端加载时间。

看看http://bassistance.de/jquery-plugins/jquery-plugin-validation/ 。 这是很好的jQuery插件,它允许构build强大的表单validation系统。 这里有一些有用的样本。 所以,表单中的电子邮件字段validation看起来如此:

 $("#myform").validate({ rules: { field: { required: true, email: true } } }); 

详细信息和示例请参阅电子邮件方法文档

我会推荐Verimail.js ,它也有一个JQuery插件 。

为什么? Verimail支持以下内容:

  • 语法validation(根据RFC 822)
  • IANA TLDvalidation
  • 对最常见的TLD和电子邮件域进行拼写build议
  • 拒绝临时的电子邮件帐户域名,如mailinator.com

所以除了validation,Verimail.js也给你提供build议。 因此,如果您input的电子邮件中包含与常见电子邮件域名(hotmail.com,gmail.com等)非常相似的错误TLD或域名,则可以检测到该问题并提出更正build议。

例子:

等等..

要使用jQuery,只需在您的网站上添加verimail.jquery.js并运行下面的函数:

 $("input#email-address").verimail({ messageElement: "p#status-message" }); 

消息元素是一个将显示消息的元素。 这可以是从“您的电子邮件无效”到“您的意思是…?

如果你有一个表单,并且想要限制它,除非电子邮件是有效的,否则你可以使用getVerimailStatus函数检查状态,如下所示:

 if($("input#email-address").getVerimailStatus() < 0){ // Invalid }else{ // Valid } 

该函数根据对象Comfirm.AlphaMail.Verimail.Status返回一个整数状态码。 但是一般的经验法则是,低于0的任何代码都是代表错误的代码。

 <!-- Dont forget to include the jQuery library here --> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#validate").keyup(function(){ var email = $("#validate").val(); if(email != 0) { if(isValidEmailAddress(email)) { $("#validEmail").css({ "background-image": "url('validYes.png')" }); } else { $("#validEmail").css({ "background-image": "url('validNo.png')" }); } } else { $("#validEmail").css({ "background-image": "none" }); } }); }); function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([az]{2,6}(?:\.[az]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); } </script> <style> #validEmail { margin-top: 4px; margin-left: 9px; position: absolute; width: 16px; height: 16px; } .text { font-family: Arial, Tahoma, Helvetica; } </style> <title>Live Email Validation with jQuery Demo</title> </head> <body> <div class="text"><h1>Reynoldsftw.com - Live Email Validation</h1><h2>Type in an email address in the box below:</h2></div> <div><input type="text" id="validate" width="30"><span id="validEmail"></span></div> <div class="text"><P>More script and css style 

http://www.htmldrive.net


来源:htmldrive.com

 <script type="text/javascript"> $(document).ready(function() { $('.form_error').hide(); $('#submit').click(function(){ var name = $('#name').val(); var email = $('#email').val(); var phone = $('#phone').val(); var message = $('#message').val(); if(name== ''){ $('#name').next().show(); return false; } if(email== ''){ $('#email').next().show(); return false; } if(IsEmail(email)==false){ $('#invalid_email').show(); return false; } if(phone== ''){ $('#phone').next().show(); return false; } if(message== ''){ $('#message').next().show(); return false; } //ajax call php page $.post("send.php", $("#contactform").serialize(), function(response) { $('#contactform').fadeOut('slow',function(){ $('#success').html(response); $('#success').fadeIn('slow'); }); }); return false; }); }); function IsEmail(email) { var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if(!regex.test(email)) { return false; }else{ return true; } } </script> <form action="" method="post" id="contactform"> <table class="contact-table"> <tr> <td><label for="name">Name :</label></td> <td class="name"> <input name="name" id="name" type="text" placeholder="Please enter your name" class="contact-input"><span class="form_error">Please enter your name</span></td> </tr> <tr> <td><label for="email">Email :</label></td> <td class="email"><input name="email" id="email" type="text" placeholder="Please enter your email" class="contact-input"><span class="form_error">Please enter your email</span> <span class="form_error" id="invalid_email">This email is not valid</span></td> </tr> <tr> <td><label for="phone">Phone :</label></td> <td class="phone"><input name="phone" id="phone" type="text" placeholder="Please enter your phone" class="contact-input"><span class="form_error">Please enter your phone</span></td> </tr> <tr> <td><label for="message">Message :</label></td> <td class="message"><textarea name="message" id="message" class="contact-input"></textarea><span class="form_error">Please enter your message</span></td> </tr> <tr> <td></td> <td> <input type="submit" class="contactform-buttons" id="submit"value="Send" /> <input type="reset" class="contactform-buttons" id="" value="Clear" /> </td> </tr> </table> </form> <div id="success" style="color:red;"></div> 
 function isValidEmailAddress(emailAddress) { var pattern = /^([az\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[az\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]+)?")@(([az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][az\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[az\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i; return pattern.test(emailAddress); }; 

这将执行更彻底的validation,例如,它会检查用户名中的连续点(例如john..doe @ example.com)

 function isValidEmail(email) { return /^[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[az]{2,4}$/.test(email) && /^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*/.test(email); } 

请参阅在JavaScript中使用正则expression式validation电子邮件地址 。

如果你有一个基本的表单,只需要input电子邮件types: <input type="email" required>

这将适用于使用HTML5属性的浏览器,然后你甚至不需要JS。 即使使用上面的一些脚本来使用电子邮件validation也不会做太多的工作,因为:

some@email.com so@em.co my@fakemail.net

等等…将所有的validation为“真实”的电子邮件。 所以你最好确保用户input他们的电子邮件地址两次,以确保他们把同一个。但要保证电子邮件地址是真实的将是非常困难的,但很有趣,看看是否有一个办法。 但是,如果您只是确保它是一封电子邮件,请坚持HTML5input。

FIDDLE例子

这适用于FireFox和Chrome。 它可能无法在Internet Explorer中工作…但Internet Explorer糟透了。 那么那就是…

 function isValidEmail(emailText) { var pattern = new RegExp(/^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\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]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); return pattern.test(emailText); }; 

像这样使用:

 if( !isValidEmail(myEmail) ) { /* do things if myEmail is valid. */ } 
 function validateEmail(emailaddress){ var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; if(!emailReg.test(emailaddress)) { alert("Please enter valid email id"); } } 
 <script type = "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type = "text/javascript"> function ValidateEmail(email) { var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; return expr.test(email); }; $("#btnValidate").live("click", function () { if (!ValidateEmail($("#txtEmail").val())) { alert("Invalid email address."); } else { alert("Valid email address."); } }); </script> <input type = "text" id = "txtEmail" /> <input type = "button" id = "btnValidate" value = "Validate" /> 

在这里登陆…..在这里结束: https : //html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address

…提供了以下正则expression式:

 /^[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])?)*$/ 

…我发现感谢jQueryvalidation插件自述文件: https : //github.com/jzaefferer/jquery-validation/blob/master/README.md#reporting-an-issue

所以, @Fabian的答案的更新版本将是:

 function IsEmail(email) { var regex = /^[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])?)*$/; return regex.test(email); } 

希望有所帮助

对于希望使用更好的可维护解决scheme而不是破坏性LightYar长RegEx匹配的thoose,我写了几行代码。 Thoose谁想要保存字节,坚持RegEx变种:)

这限制了:

  • string中没有@
  • string中没有点
  • @之后2点以上
  • 用户名(@之前)中的错误字符
  • string中超过2 @
  • 在域中的不好的字符
  • 在子域中的不好的字符
  • TLD中的错误字符
  • 顶级域名地址

无论如何,它仍然有可能泄露,因此请确保将其与服务器端validation+电子邮件链接validation相结合。

这是 JSFiddle

  //validate email var emailInput = $("#email").val(), emailParts = emailInput.split('@'), text = 'Enter a valid e-mail address!'; //at least one @, catches error if (emailParts[1] == null || emailParts[1] == "" || emailParts[1] == undefined) { yourErrorFunc(text); } else { //split domain, subdomain and tld if existent var emailDomainParts = emailParts[1].split('.'); //at least one . (dot), catches error if (emailDomainParts[1] == null || emailDomainParts[1] == "" || emailDomainParts[1] == undefined) { yourErrorFunc(text); } else { //more than 2 . (dots) in emailParts[1] if (!emailDomainParts[3] == null || !emailDomainParts[3] == "" || !emailDomainParts[3] == undefined) { yourErrorFunc(text); } else { //email user if (/[^a-z0-9!#$%&'*+-/=?^_`{|}~]/i.test(emailParts[0])) { yourErrorFunc(text); } else { //double @ if (!emailParts[2] == null || !emailParts[2] == "" || !emailParts[2] == undefined) { yourErrorFunc(text); } else { //domain if (/[^a-z0-9-]/i.test(emailDomainParts[0])) { yourErrorFunc(text); } else { //check for subdomain if (emailDomainParts[2] == null || emailDomainParts[2] == "" || emailDomainParts[2] == undefined) { //TLD if (/[^az]/i.test(emailDomainParts[1])) { yourErrorFunc(text); } else { yourPassedFunc(); } } else { //subdomain if (/[^a-z0-9-]/i.test(emailDomainParts[1])) { yourErrorFunc(text); } else { //TLD if (/[^az]/i.test(emailDomainParts[2])) { yourErrorFunc(text); } else { yourPassedFunc(); }}}}}}}}} 
 if($("input#email-address").getVerimailStatus() < 0) { (incorrect code) } if($("input#email-address").getVerimailStatus() == 'error') { (right code) } 
 checkRegexp( email, /^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\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]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" ); 

引用:JQUERY UI网站

用这个

 if ($this.hasClass('tb-email')) { var email = $this.val(); var txt = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (!txt.test(email)) { e.preventDefault(); $this.addClass('error'); } else { $this.removeClass('error'); } } 

你应该看到这个: jquery.validate.js ,将它添加到你的项目

像这样使用它:

 <input id='email' name='email' class='required email'/> 

另一个简单而完整的选项:

 <input type="text" id="Email"/> <div id="ClasSpan"></div> <input id="ValidMail" type="submit" value="Valid"/> function IsEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); } $("#ValidMail").click(function () { $('span', '#ClasSpan').empty().remove(); if (IsEmail($("#Email").val())) { //aqui mi sentencia } else { $('#ClasSpan').append('<span>Please enter a valid email</span>'); $('#Email').keypress(function () { $('span', '#itemspan').empty().remove(); }); } }); 

一个非常简单的解决scheme是使用html5validation:

 <form> <input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}"> <input type="submit"> </form> 

http://jsfiddle.net/du676/56/

错误是在JQueryvalidationvalidation插件只validation与@改变这一点

将代码更改为此

 email: function( value, element ) { // From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29 // Retrieved 2014-01-14 // If you have a problem with this implementation, report a bug against the above spec // Or use custom methods to implement your own email validation return this.optional( element ) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( value ); } 

我刚刚做了一个简化的,做了我所需要的。 已经限制它只是字母数字,句点,下划线和@。

 <input onKeyUp="testEmailChars(this);"><span id="a"></span> function testEmailChars(el){ var email = $(el).val(); if ( /^[a-zA-Z0-9_@.-]+$/.test(email)==true ){ $("#a").html("valid"); } else { $("#a").html("not valid"); } } 

在别人的帮助下完成的

这个正则expression式可以防止像abc@abc.com.com.com.com这样的重复域名,它只允许域名abc@abc.co.in。 它也不允许像123abc@abc.com这样的号码

  regexp: /^([a-zA-Z])+([a-zA-Z0-9_.+-])+\@(([a-zA-Z])+\.+?(com|co|in|org|net|edu|info|gov|vekomy))\.?(com|co|in|org|net|edu|info|gov)?$/, 

祝一切顺利 !!!!!

按键状态处理,input时validation电子邮件。

 $("#email").on("input", function(){ var email = $("#email").val(); var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; if (!filter.test(email)) { $(".invalid-email:empty").append("Invalid Email Address"); $("#submit").attr("disabled", true); } else { $("#submit").attr("disabled", false); $(".invalid-email").empty(); } }); 

如上所述,如果你问我,这个就足够了。

 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

但是,如果您不希望域名(.com,.nu,.net等)包含数字(这是我的首选),编辑后的版本将是:

 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z]{2,4})+$/; 

使用jquery.validate.js ,它有Microsoft ajax CDN。

 $('#form').validate({ rules:{ "name":{ required:true, maxlength:40 }, "email":{ required:true, email:true, //for validate email maxlength:100 }, "message":{ required:true } } }); 

如果你正在使用jQueryvalidation

我创build了一个方法emailCustomFormat使用regex为我的custm格式,你可以改变它来满足你的需求

 jQuery.validator.addMethod("emailCustomFormat", function (value, element) { return this.optional(element) || /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/.test(value); }, abp.localization.localize("FormValidationMessageEmail"));// localized message based on current language 

那么你可以像这样使用它

 $("#myform").validate({ rules: { field: { required: true, emailCustomFormat : true } } }); 

这个正则expression式接受

abc@abc.abcabc@abc.abcd但不是这个

abc@abcabc@abc abc@abc.aabc@abc abc@abc.abcde

希望这可以帮助你

MVC / ASP.NET中的Javascript电子邮件validation

我在使用Fabian的答案时遇到的问题是由于Razor @符号在MVC视图中实现。 你必须包含一个额外的@符号来逃避它,如: @@

在MVC中避免剃刀

 function isEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return regex.test(email); } 

我没有看到在这个页面上的其他地方,所以我认为这可能是有帮助的。

编辑

这里有一个来自Microsoft的链接 ,描述它的用法。
我刚刚testing了上面的代码,得到了以下js:

 function validateEmail(email) { var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; return re.test(email); } 

这正在做它应该做的事情。

我从jqvalidate版本1.11.0中取出这个代码,并在版本1.16.0中作为附加的方法实现。 有用

  jQuery.validator.addMethod("strictemail", function(value, element) { var valid = /^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\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]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value); return valid; }, "Escribe un correo v\u00e1lido" ); 

而且在电子邮件规则

  'correo': { required: 'Por favor ingresa tu correo', email: 'Escribe un correo v\u00e1lido', strictemail:'Escribe un correo v\u00e1lido' }