用于阻止特定电子邮件域注册的正则表达式


Regular expression for blocking particular email domains from registering

我有一个注册表格,用户填写他们的电子邮件地址(和密码)。

我正在使用的web框架(Symfony)允许我为电子邮件地址指定一个正则表达式,使其为"good-to-go"。

我想阻止一些只是垃圾邮件的域名,比如:

example1.com  example2.com

所以我需要一个正则表达式,这意味着:"接受一切,但从这些域名的电子邮件地址"

我如何将正则表达式放在一起?

I tried with:

/!(@(examples1'.com|example2'.com)$)/

但是它没有做它应该做的。

有谁能帮帮我吗?

Symfony允许您执行正正则表达式验证器和负正则表达式验证器。你会想做一个负的。

sfRegexValidator:
  match:        No
  match_error:  Email addresses from that domain are not allowed
  pattern:      /@(examples1'.com|example2'.com)$/si

你可以试试这些(我没有Symfony的经验):

^(?:(?!example1'.com|example2'.com).)*$'r?'n?

取自Regex Buddy的库,或者如下:

^(?!.*example1'.com|example2'.com.*).*$

最后是我的即兴表演