【问题标题】:Validate and filter email address with RegEx?使用 RegEx 验证和过滤电子邮件地址?
【发布时间】:2011-10-28 09:01:27
【问题描述】:

使用 RegEx 和 Javascript 电子邮件字段验证来禁止免费电子邮件服务电子邮件(例如 Gmail、Yahoo、Hotmail)的最佳方法是什么?

^.*@(?!(aol\.com$|yahoo\.com$|hotmail\.com$))$

我在Validate email address in JavaScript? 看到了通用的“用 Javascript 验证电子邮件地址”解决方案,但不知道如何让它禁止 Gmail、Yahoo 和 Hotmail。

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b

【问题讨论】:

  • 一定要用正则表达式吗?您能否改为在 @ 上拆分,然后与 TLD 的黑名单进行比较?
  • 我正在使用第 3 方表单框架,该框架允许使用正则表达式进行自定义验证。因此,我必须使用正则表达式。

标签: javascript regex validation email-validation


【解决方案1】:

数以千计的可接受方式之一 - 并不是说​​你的方式不可接受......

function isGoodEmail(email) {
    if(isValidEmail(email)) {
        if(/(aol|gmail|yahoo|hotmail)\.com$/.test(email)) {
           alert(' valid email, but not for this site.  No free service emails!');
           return false;
        }
        return true;
    }
    return false;
}

function isValidEmail(email) {
  // implement using any of the email regexp's available 
}

【讨论】:

  • 我必须使用正则表达式。
  • 很抱歉给您带来了困惑。我会确保编辑问题。
猜你喜欢
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 2021-10-20
  • 2018-12-12
  • 1970-01-01
相关资源
最近更新 更多