使用RegExp在jQuery中进行电子邮件验证

时间:2015-06-11 04:24:33

标签: javascript jquery regex email

我必须验证一个电子邮件字段,该字段可以包含由(;)分隔的多个电子邮件地址。以下是我使用的代码

$("body").find(".reqEmail").filter(function(){
        var regex = new RegExp(/^[_A-Za-z0-9-]+[^(),:;<>\\[\\]@]*@[^(),:;<>\\[\\]@]*(\\.[A-Za-z]{2,})+$/);///^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        var email=$(this).val()
        if(regex.test(email)==false){
                e.preventDefault();
                $(this).css("border","solid 1px red");
                $(this).parent().find("#ReceAppEmail").html("Invalid Email!!");
                }
                else{return true;}
    });

它总是给出错误消息,即使我插入1个电子邮件地址。我找不到我错的地方。有什么建议吗? 仅供参考:这包含在表单提交(onsubmit

3 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式获取以分号分隔的所有电子邮件地址:

(lambda (a1) ...)

http://regexr.com/3b6al

答案 1 :(得分:1)

您可以通过以下代码执行此操作。

function validatecommSeptEmail(commSeptEmail)
{
    var regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}$/;
    return (regex.test(commSeptEmail)) ? true : false;
}

function validateMultiplecommSeptEmails(emailcntl, seperator)
{
    var value = emailcntl.value;
    if (value != '') {
        var result = value.split(seperator);
        for (var i = 0; i < result.length; i++) {
            if (result[i] != '') {
                if (!validatecommSeptEmail(result[i])) {
                    emailcntl.focus();
                    alert('Please check, `' + result[i] + '` email addresses not valid!');
                    return false;
                }
            }
        }
    }
    return true;
}

如何使用?

onblur="validateMultiplecommSeptEmails(this,',');"

答案 2 :(得分:0)

  

试试这个

function validateEmail(email) {
    var regixExp = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    $(".reqEmail").css("border","solid 1px red");
    $("#ReceAppEmail").html("Invalid Email!!");
    return regixExp.test(email);
}