Regex用于电子邮件,但带有白名单

Regex用于电子邮件,但带有白名单,regex,Regex,我想找到一个能像这样工作的东西: 排除所有@aaa.*的电子邮件,如someone@aaa.com或someoneElse@aaa.net 但是让NoEmail@aaa.com及Exception@aaa.com 我不知道如何结合起来强调第一条规则,但也有例外 我还想添加一个电子邮件模式验证,这样它就有一个@然后一个。(我有这个规则,只需要合并所有3项)为什么不在单独的语句中执行这些条件?首先检查它是否是电子邮件,然后检查它是否在白名单中。并最终拒绝任何不允许的电子邮件 var电子邮件={ '

我想找到一个能像这样工作的东西:

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

我不知道如何结合起来强调第一条规则,但也有例外


我还想添加一个电子邮件模式验证,这样它就有一个@然后一个。(我有这个规则,只需要合并所有3项)

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

var电子邮件={
'notemailatall':false,
'someone@aaa.com':错,
'someoneElse@aaa.net':错,
'ExcludeEmail@aaa.com':错,
'NoEmail@aaa.com’:没错,
'Exception@aaa.com’:是的
};
var白名单=[
'NoEmail@aaa.com',
'Exception@aaa.com'
];
for(让对象条目(电子邮件)的[电子邮件,条件]){
日志(电子邮件、条件、验证邮件(电子邮件));
}
功能验证电子邮件(电子邮件){
//检查是否存在电子邮件。使用适当的电子邮件检查器regex替换regex
如果(!/\w+@\w+\./.test(电子邮件)){
返回false;
}
如果(白名单,包括(电子邮件)){
返回true;
}
如果(email.indexOf('@aaa')!=-1){
返回false;
}
返回true;

}
到目前为止您尝试了什么?我尝试了很多组合,我成功地将其用于第3条规则,但没有与规则1和2组合使用。(?=([\w-]+(?:\[\w-]+)*)@((?:[\w-]+\)*\w[\w-]{0,66})\([a-z]{2,6}(?:\[a-z]{2})$|NoEmail@aaa.com|Exception@aaa.com)(?=@aaa.+[\w])我不明白为什么我要接近这个问题,因为两个“重复帖子”中都没有答案。除了保留一个白名单外,我如何将这两个帖子合并起来排除所有问题都没有答案。。。。我怎么能重新打开这个?是的,我想过这个,但我在想是否有一个更干净的方法来使用RegEx。