我在电子邮件验证方面遇到问题,我有两种基于这些电子邮件格式的电子邮件格式,我只需要检查验证如果用户错误地从这两封电子邮件中输入,则会在下面引发警报消息,我的代码无法正常工作,我该怎么办这样做
var atpos = email.indexOf("@ho.XXX");
var atpos1 = email.indexOf("@YYYY");
var dotpos = email.lastIndexOf(".com");
if (atpos<1 && atpos1<1 || dotpos<atpos+2 ||dotpos<atpos1+2 || dotpos+2>=email.length){
alert("Email Should be in @@ho.XXX.com or @YYYY.com");
document.getElementById("txtEmail").focus();
return false;
}
当我采用上述if-condition
时,它接受两个电子邮件ID。我一次只需要接受一个。如果用户同时输入两者都会显示错误消息,例如仅输入一个电子邮件 ID,并且当我在 .com
之后输入一些文本(例如 .comyu
)时,它会接受而不显示任何错误如何验证 .com
在这种情况下显示错误
最佳答案
如果您只需要检查您的电子邮件是否以“@ho.XXX.com”或“@YYYY.com”结尾,并且这些是您想要查找的固定域,那么您可以简单地从以下内容开始:
function checkval(v) {
if (!v.endsWith("@ho.XXX.com") && !v.endsWith("@YYYY.com"))
alert("value is bad : " + v);
else
alert("value is good : " + v);
};
checkval("test@ho.XXX.com");
checkval("sasdf@YYYY.com");
checkval("xxxx@ho.XX.com");
checkval("sasdf@YYY.com");
--- 代码片段编辑为使用endsWith。文档 here
The endsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.
提示:您可以通过各种方式尝试使用正则表达式并使您的代码更具可扩展性,但这取决于您的用例。
--- 用德摩根定律编辑 ---
Not (a or b) = (not a) and (not b)
!(a || b ) = !a && !b
关于javascript - 如何验证电子邮件地址在java脚本中只允许两个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43674745/