正则表达式用于电子邮件,但具有白名单[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式用于电子邮件,但具有白名单[重复]相关的知识,希望对你有一定的参考价值。

我想找到类似的东西:

排除所有@ aaa。*的电子邮件,例如someone@aaa.com或someoneElse@aaa.net但是让NoEmail@aaa.com和Exception@aaa.com

我不知道如何结合以强调第一个规则,但是有例外。

此外,我想添加一个电子邮件模式验证,因此它先有一个@然后是一个。 (我有这个规则,只需要合并所有3个项目)

答案

为什么不在单独的语句中执行这些条件?首先检查它是否是电子邮件,然后检查它是否在白名单中。最后拒绝所有不允许的电子邮件。

var emails = {
  'notEmailAtAlll': false,
  'someone@aaa.com': false,
  'someoneElse@aaa.net': false,
  'ExcludeEmail@aaa.com': false,
  'NoEmail@aaa.com': true,
  'Exception@aaa.com': true
};

var whitelist = [
  'NoEmail@aaa.com',
  'Exception@aaa.com'
];

for (let [email, condition] of Object.entries(emails)) {
  console.log(email, condition, validateEmail(email));
}

function validateEmail(email) {
  // Check if email. Replace regex with proper email checker regex
  if (!/w+@w+./.test(email)) {
    return false;
  }
  
  if (whitelist.includes(email)) {
    return true;
  }

  if (email.indexOf('@aaa.') !== -1) {
    return false;
  }
  
  return true;
}

以上是关于正则表达式用于电子邮件,但具有白名单[重复]的主要内容,如果未能解决你的问题,请参考以下文章

具有字符限制的 Javascript 正则表达式白名单

用于从电子邮件标头获取 IP 地址的正则表达式 [重复]

Java正则匹配域名白名单

正则表达式:允许除某些选定字符之外的所有内容[重复]

用于电子邮件验证的正则表达式。 [复制]

具有真实电话号码的Firebase PhoneAuth不工作但白名单号正在运行 - Android