JavaScript中带有分号的多个电子邮件验证正则表达式

时间:2019-06-04 09:59:43

标签: javascript regex

JavaScript中带有分号的多个电子邮件验证正则表达式

它可以允许多个电子邮件,并且可以在电子邮件ID后使用分号。如果仅提供一个电子邮件ID,则可以使用分号或不使用分号。

我尝试了以下代码:

<script type = "text/javascript" >
    function myFunction() {
        var email = document.getElementById("email").value;
        var reg = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-\.]+)+([;]([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-\.]+))*$/;
        if (reg.test(email) == false) {
            alert("Entered email id is not valid")
            return false;
        } else {
            alert("Entered email id is valid")
            return true;
        }
    } 
</script> 

1 个答案:

答案 0 :(得分:0)

尝试这种方法。

它将电子邮件列表分为多个单独的地址并遍历所有地址。此外,它使用简化的正则表达式来检查电子邮件的有效性。

此外,检查列表中一封电子邮件的有效性应该更可靠,这只是一个例子。

var email = document.getElementById("email").value;
console.log("Are emails valid: " + checkEmailValidity(email));

function checkEmailValidity(emailList) {
    var reg = /^.+?@.+?\.\w{2,}$/i;
    var emailArr;

    if (emailList.indexOf(";") < emailList.indexOf("@")) {
        //assume only one email address on the list
        emailArr = [emailList];
    } else {
        emailArr = emailList.split(";")
    }

    var isValid = true;
    emailArr.forEach(function(addr) {
        if (reg.test(addr) === false) {
            console.log("One of the emails is not valid: " + addr);
            isValid = false;
        }
    })
    return isValid;
}