【发布时间】:2018-05-18 08:13:38
【问题描述】:
我想验证这个包含多封电子邮件的文本字段email;全部用分号分隔,但这不起作用。当 msn.com 与其他电子邮件一起输入时,它应该会中断。
var isMsn = ["msn.com"];
function myFunction() {
var str = email.value;
//var isMsn = str.includes("msn.com");
var res = str.split(";");
var isValid = false;
//alert(res.length);
for (var i = 0; i < res.length; i++){
//alert(res[i]);
var x = res[i];
//check to see if this is an valid emAIL then
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(x.match(mailformat)){
alert("valid email address!");
//IF isMsn = TRUE then check to see if is contains msn.com
if (x.contains(isMsn) ){
alert("it is MSN");
//res[+1];
isValid = true;
}
else {
alert('no MSN');
if (res.includes(isMsn)){
//alert('Cannot mix MSN emails with other');
//isValid = false;
//res[-1];
break;
}
//else{
//alert('it is other');
//isValid = true;
//}
}
}
else{
alert("You have entered an invalid email address!");
isValid = false;
}
}
}
我希望它循环通过,并且所有电子邮件必须匹配 msn.com 或其他 NOT Both。例如,user@msn.com;user1@msn.com 或 user@hotmail.com;user1@hotmail.com 但不是 user@msn.com;user1@hotmail.com
不确定 .includes 是否是最佳选择!
【问题讨论】:
-
我假设您的代码不起作用。请编辑您的问题并解释什么不起作用。另外,考虑在 JSfiddle 中创建一个工作版本,这样我们就可以看到问题所在。
-
它不起作用,理想情况下,当其他电子邮件与 msn.com 一起输入时;它应该会破裂,但不会!
标签: javascript arrays validation email-validation