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

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;
}

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