【发布时间】:2014-05-09 10:13:54
【问题描述】:
在认为它与任何类似问题重复之前,请先阅读要求。
据我发现超过 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
无效的电子邮件
@.co
@a.com
a@a
a@.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
【问题讨论】:
-
此链接不包含
allowing two dots"的解决方案 -
@ParthTrivedi,采用其中一种解决方案,然后手动验证两个点,如下面的回答中所述。
-
请阅读链接为重复的问题。问题不是答案,而是你没有得到它。鉴于
in.in是一个有效域名,所有者可以完美地将邮件服务器放在子(子(子))域a.co.in.in.in.in.in.in.in上。你不认为这是有效的并不意味着它不是。如果您想计算字符串中的点数,请在此站点中搜索“count characters in string”,但这与电子邮件验证无关。 -
也许你是对的,但我的要求是
Allow subdomain upto Only two dots。我很抱歉。 -
如果你想拒绝来自
foo@mail.company.com的人,那是你的损失。此外,您可能希望在第一个字符组中转义点。
标签: c# regex validation email c#-4.0