Javascript 验证多封以分号分隔的电子邮件,所有电子邮件必须与特定域匹配
我想验证包含多封电子邮件的文本字段Javascript 验证多封以分号分隔的电子邮件,所有电子邮件必须与特定域匹配,javascript,arrays,validation,email-validation,Javascript,Arrays,Validation,Email Validation,我想验证包含多封电子邮件的文本字段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; //aler
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;
}
}
}
var isMsn=[“msn.com”];
函数myFunction(){
var str=email.value;
//var isMsn=str.includes(“msn.com”);
var res=str.split(“;”);
var isValid=false;
//警报(res.length);
对于(变量i=0;i
我希望它循环通过,所有的电子邮件必须要么匹配一个msn.com或其他,而不是两者都匹配。例如user@msn.com;user1@msn.com或user@hotmail.com;user1@hotmail.com但不是user@msn.com;user1@hotmail.com
不确定.includes是否是最佳选项 1)您应该使用包含
而不是包含
2)
includes
或contains
方法接受字符串,而不是数组,因此它应该是res.includes(isMsn[0])
如果要通过多个域进行验证,则不应将其命名为isMsn
,而应将其命名为prohibiteddomes
,然后将其命名为Array
prohibitedDomains.some((domain) => res.includes(domain))
我假设你的代码不起作用。请编辑您的问题并解释什么不起作用。此外,考虑在JSfiddle创建一个工作版本,这样我们就可以看到问题是什么。它不能工作,最好是当其他电子邮件与MSNN一起进入时;它应该会坏,但不会!但我希望每封电子邮件都经过验证,并且必须是user@msn.com;user1@msn.com或user@hotmail.com;user1@hotmail.com不user@msn.com;user1@hotmail.com