用regex jquery验证电子邮件

hyp*_*jas -1 jquery

提到这个问题:

如何使用jquery为字段设置最小长度?

<form id="new_invitation" class="new_invitation" method="post" data-remote="true" action="/invitations" accept-charset="UTF-8">
<div id="invitation_form_recipients"> 
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_0"><br>
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_1"><br>
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_2"><br>
<input type="text" value="" name="invitation[recipients][]" id="invitation_recipients_3"><br>
</div>
<input type="submit" value="Send invitation" name="commit">
</form>
Run Code Online (Sandbox Code Playgroud)

使用jquery为字段设置最小长度的代码?

$('#new_invitation').submit(function(event) {
if ($('#invitation_form_recipients input').filter(function() {
    return $(this).val();
}).length == 0) {
    // all the fields are empty
    // show error message here

    // this blocks the form from submitting
    event.preventDefault();
}

});
Run Code Online (Sandbox Code Playgroud)

如何验证每个字段输入是否具有jquery的有效电子邮件地址?在上面的代码?

谢谢!

解决方案!

$('#new_invitation').submit(function(e)  {
 $('#invitation_form_recipients input').each(function(e) {
   email_address = $(this);
   email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i;
   if(!email_regex.test(email_address.val())){ alert('this is not valid email'); e.preventDefault(); return false;  }
 });    
});
Run Code Online (Sandbox Code Playgroud)

rjz*_*rjz 27

您可能希望使用像此处所述的正则表达式来检查格式.提交表单时,在每个字段上运行以下测试:

var userinput = $(this).val();
var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i

if(!pattern.test(userinput))
{
  alert('not a valid e-mail address');
}?
Run Code Online (Sandbox Code Playgroud)

  • 上面的模式无法验证RFC5322中指定的正确电子邮件地址,并且具有误导性。如果您在实时网站上使用此功能,则会阻止有效用户。特殊字符允许在地址的本地部分!#$%&'* +-/ =?^ _`{|}〜请参见/sf/ask/143465171/​​haracters-are-允许的电子邮件地址和https://tools.ietf.org/html/rfc5322 (2认同)

小智 5

这个正则表达式可以帮助您根据 gmail.com 使用的所有标准检查您的电子邮件地址。

var re = /^\w+([-+.'][^\s]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

var emailFormat = re.test($("#email").val()); // This return result in Boolean type

if (emailFormat) {}
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码片段可能会解决问题,但 [包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您提出代码建议的原因。 (2认同)