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>
答案 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;
}