用regex jquery验证电子邮件

时间:2012-03-05 18:55:54

标签: jquery

指的是这个问题:

how can I set a minimum length for a field with 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>

使用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();
}

});

如何验证每个字段输入是否都有一个带有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;  }
 });    
});

6 个答案:

答案 0 :(得分:21)

您可能希望使用像described here这样的正则表达式来检查格式。提交表单后,在每个字段上运行以下测试:

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');
}​

答案 1 :(得分:3)

此正则表达式可以帮助您根据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) {}

答案 2 :(得分:0)

在javascript中,您可以使用许多javascript函数(例如onkeyup(),onchange()等)轻松地验证电子邮件!调用函数后,使用javascript的RegExp验证电子邮件,如下所示。

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);

以上语法用于验证javascript中的电子邮件。有关详细说明,请查看https://www.htmlhints.com/article/10/email-validation-in-javascript-using-regular-expression-with-match

答案 3 :(得分:0)

Email: {
                      group: '.col-sm-3',
                      enabled: false,
                      validators: {
                          //emailAddress: {
                          //    message: 'Email not Valid'
                          //},
                          regexp: {
                              regexp: '^[^@\\s]+@([^@\\s]+\\.)+[^@\\s]+$',
                              message: 'Email not Valid'
                          },
                      }
                  },

答案 4 :(得分:0)

这:/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i在Gmail以下情况下不起作用

gmail。@ gmail.com gmail @ .gmail.com

正则表达式下面将覆盖所有电子邮件点:由于正则表达式下面,我已经尝试了所有可能的点,并且我的测试用例也通过了

我从以下URL找到了此解决方案:

Regex Solution link

/(?:((?:[\w-]+(?:\.[\w-]+)*)@(?:(?:[\w-]+\.)*\w[\w-]{0,66})\.(?:[a-z]{2,6}(?:\.[a-z]{2})?));*)/g

答案 5 :(得分:-2)

function mailValidation(val) {
    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})(\]?)$/;

    if (!expr.test(val)) {
        $('#errEmail').text('Please enter valid email.');
    }
    else {
        $('#errEmail').hide();
    }
}