javascript - 如何验证电子邮件地址在java脚本中只允许两个域

标签 javascript email

我在电子邮件验证方面遇到问题,我有两种基于这些电子邮件格式的电子邮件格式,我只需要检查验证如果用户错误地从这两封电子邮件中输入,则会在下面引发警报消息,我的代码无法正常工作,我该怎么办这样做

 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/

相关文章:

ruby-on-rails - Rails mailer 填充模板时未定义的局部变量

go - 通过 SendGrid v3 发送 HTML 内容

javascript - 如何在 page_load() 之前使用 javascript 填充 html 元素?

javascript - Angular JS 未捕获错误 : [$injector:modulerr] simple code

javascript - Bluebird promisifyAll 未创建整套异步函数

python - 多部分电子邮件 PDF 附件空白

webview 输入字段中的 Android 电子邮件友好键盘

PHP 电子邮件编码?

javascript - 重构 AngularJS 代码 - 提取函数

php - PHP 和 JS 之间的数据通信