电子邮件验证的正则表达式。

问题描述:

可能重复:
What is the best regular expression for validating email addresses?电子邮件验证的正则表达式。

我使用的要求对于电子邮件地址的形式。我用正则表达式作为

.*@.*\..*

但它不是我的一些测试电子邮件ID的做工精细喜欢

dsrasdf @@@ [email protected]

任何一个向我提供了电子邮件验证正则表达式在asp.net或者我可以用任何其他方法吧。

请给出您的建议。

+0

作为一个经验法则:正则表达式中使用'.'之前想至少两次。请注意'.... @ ......'也符合您的表情。 – Michael 2010-09-07 09:26:36

+0

@Michael:在这种特殊情况下,确实有一个相当宽松的验证是有意义的。实际的电子邮件地址遵循非常复杂的规则,并且通常不值得努力创建过于复杂(读取错误)的正则表达式。例如,一些主要的免费邮件提供商不允许使用完全有效的“+”字符。巴姆。 – 2010-09-07 09:31:05

+0

真,还是使用'.'只应谨慎进行,就是在这种情况下,仍然是错误的。恕我直言,这种验证既不是“太松”,也不是“太严格”,因为字符串既不是超集也不是真正的有效电子邮件地址的子集。这只是错误的。 – Michael 2010-09-07 09:57:18

最好依靠on the framework用于这种东西。

try { 
    address = new MailAddress(address).Address; 
} catch(FormatException) { 
    //address is invalid 
} 
+1

+1现在,这是一个想法! – Bobby 2010-09-07 09:30:00

+0

虽然我只当你使用.NET 4中说,我相当肯定早期版本将无法各类有效的电子邮件地址。 – 2010-09-07 09:37:43

+0

我请你原谅,但是这个代码片段是OK,因为.NET 2一个人来捕获异常,虽然。 [http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx] – Vinzz 2010-09-07 09:46:23

我使用下面的正则表达式我的电子邮件验证(不区分大小写):

^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$ 

我不知道的ASP,但我认为你可以使用它像这样。

^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z{2-4}|[0-9]{1,3})(\]?)$