请在认为与任何类似问题重复之前阅读该要求。
据我发现20多个电子邮件验证正则表达式但是所有这些都允许
a@a.co.in.in.in.in.in.in.in
作为有效的电子邮件地址!!!
我想限制只允许两个点(。)。
例如:
有效电子邮件
somename@yahoo.in
somename@yahoo.co.in
somename@somesite.bizz
somename@gmail.com
somename@somesite.net
无效的电子邮件
@。共
@ a.com
一个@一个
一个@ .COM
a@a.co.in.in //允许最多两个点无效
a@a.co.in.in.in.in.in.in //允许最多两个点无效
为此我尝试了
[A-ZA-Z0-9 ._%+ - ]。。+ @ [A-ZA-Z0-9] + \ [A-ZA-Z] {2,5-} [\ [A-ZA -Z] {2,5-}] {0,1}
它正在使用2个点,但为
投掷无效消息somename@somesite.com
答案 0 :(得分:1)
我认为它应该像
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,5}(\.[a-zA-Z]{2,5}){0,1}
我对正则表达式没有经验,但我认为[。[a-zA-Z] {2,5}]被认为是字符组。圆括号可以解决问题。
答案 1 :(得分:0)
一种可能的方法是首先使用允许电子邮件地址a@a.co.in.in.in.in.in.in.in
的现有正则表达式之一进行验证。如果验证,则执行以下步骤。
@
符号上进行字符串拆分。.
2
或3
,那么您找到了一个满足您对有效电子邮件定义的域。如果没有,那就拒绝。通过这种方式,您让已经找到的regex
处理了咕噜咕噜的工作,而您只需检查您关心的附加条件。