电子邮件验证在javascript中不起作用
当我在文本框example@gmail.com中只提供域名而不提供名称时,我的电子邮件验证未正确检查条件。它显示了与有效电子邮件相同的有效电子邮件,我需要对此情况发出警报。但它在检查域名时工作正常 我的代码:电子邮件验证在javascript中不起作用,javascript,Javascript,当我在文本框example@gmail.com中只提供域名而不提供名称时,我的电子邮件验证未正确检查条件。它显示了与有效电子邮件相同的有效电子邮件,我需要对此情况发出警报。但它在检查域名时工作正常 我的代码: if(!(email.endsWith("@yahoo.com") || email.endsWith("@gmail.com"))){ alert("Email Should be in @yahoo.com or @gmail.com");
if(!(email.endsWith("@yahoo.com") || email.endsWith("@gmail.com"))){
alert("Email Should be in @yahoo.com or @gmail.com");
$("#txtEmail").val('');
document.getElementById("txtEmail").focus();
return false;
}
谢谢将email.lastIndexOf@==0添加到您的状态,如下所示:
if(email.lastIndexOf("@") === 0 || !(email.endsWith("@yahoo.com") || email.endsWith("@gmail.com"))){
尝试使用这种regexp
if (email.match(/^\S+@(yahoo|gmail)+\.com$/g))
这将检查您在@之前是否有内容,并验证它是yahoo还是gmail。如果您不考虑regex,则始终可以添加另一个startsWith检查,这是一个非常好的解决方案。使用regex验证电子邮件,根据您发布的内容,JS正在做它应该做的事情。我建议使用正则表达式来检查输入的值是否是有效的邮件地址,如果是这种情况,您可以检查yahoo/gmail。顺便说一句:甚至不要尝试写一封电子邮件regex,省去你自己的麻烦,用谷歌搜索一封好的邮件。如果我错了,可能会重复“纠正我”,但我认为regex不是一个好的解决方案,因为他想检查电子邮件是来自yahoo.com还是gmail.com。