使用firstName.LastName限制域名向Regex发送电子邮件

时间:2013-04-12 18:24:40

标签: regex

我有这个正则表达式

"^\w+@(email1|email2|email3|email4|email5)+?\.[a-zA-Z]{2,3}$"

用于限制人们可以用来注册的域名。但是有些人有这样的地址:

FirstName.LastName@email1.com

即使他们的域名匹配,他们也无法注册。

有关如何在此正则表达式中包含可选"first.last"的任何建议吗?

3 个答案:

答案 0 :(得分:2)

这个正则表达式适合你:

^[a-zA-Z0-9.!#$%&'*+-\/=?\^_`{|}~-]+@(?:email1|email2|email3|email4|email5)(?:\.[a-zA-Z0-9-]+)+$

这将涵盖以下情况:

  • abc@email1.com
  • abc@email2.co.uk
  • abc@email3.jp.co.uk
  • first.last@email4.jp.co.uk

现场演示:http://www.rubular.com/r/VmPw0Q3unZ

答案 1 :(得分:1)

如何简单地检查@

^[^@]+@...

要实际检查. :(如果在任何地方都可以超过1个)

^(\w|\.)+@...

如果您想将.限制为1:

^\w+(\.\w+)?@...

(其中...(email1|email2|email3|email4|email5)+?\.[a-zA-Z]{2,3}$

答案 2 :(得分:0)

您构建了一个较小的正则表达式,用于处理域之前电子邮件初始部分的验证。现在你正在使用\w+所以如果你正在验证那两个案例(word或word.word)你可以将正则表达式改为^(\w|\w.\w)+@(email1|email2|email3|email4|email5)+?.[a-zA-Z]{2,3}$