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@.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

c#中正确的电子邮件正则表达式验证

我觉得应该是这样的

[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的现有正则表达式之一进行验证。如果验证成功,则执行以下步骤。

  1. @符号进行字符串分割。
  2. 选取分割的右侧,对周期.
  3. 进行分割
  4. 如果结果数组的长度为23,那么您已经找到了一个满足您对有效电子邮件定义的域。如果没有,则拒绝。

这样,您就可以让您已经找到的regex处理grunt工作,并且您只需检查您关心的一个附加条件。