c#中正确的电子邮件正则表达式验证
本文关键字:电子邮件 正则表达式 验证 | 更新日期: 2023-09-27 18:02:27
请先阅读要求,然后再认为这是任何类似问题的重复。
到目前为止,我找到了20多个Email验证正则表达式,但它们都允许
a@a.co.in.in.in.in.in.in.in
为有效的电子邮件地址!!
我想限制只允许两个点(.)
例如:
<有效邮件/strong>
somename@yahoo.in
somename@yahoo.co.in
somename@somesite.bizz
somename@gmail.com
somename@somesite.net
无效的邮件
@.co
@a.com
a@a
a@.coma@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
我觉得应该是这样的
[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}]是字符组。
一种可能的方法是首先使用允许电子邮件地址a@a.co.in.in.in.in.in.in.in
的现有正则表达式之一进行验证。如果验证成功,则执行以下步骤。
- 对
@
符号进行字符串分割。 - 选取分割的右侧,对周期
.
进行分割 - 如果结果数组的长度为
2
或3
,那么您已经找到了一个满足您对有效电子邮件定义的域。如果没有,则拒绝。
这样,您就可以让您已经找到的regex
处理grunt工作,并且您只需检查您关心的一个附加条件。