使用RegEx验证和过滤电子邮件地址?

Mic*_* G. 3 javascript regex validation email-validation

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

^.*@(?!(aol\.com$|yahoo\.com$|hotmail\.com$))$
Run Code Online (Sandbox Code Playgroud)

我在这里看到了通用的"在Javascript中验证电子邮件地址"解决方案在JavaScript中验证电子邮件地址?但无法弄清楚如何让它不允许Gmail,雅虎和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
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 7

成千上万的可接受的方式之一 - 不是你的方法是不可接受的...

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 
}
Run Code Online (Sandbox Code Playgroud)