用于电子邮件验证的正则表达式。 [复制]

Posted

技术标签:

【中文标题】用于电子邮件验证的正则表达式。 [复制]【英文标题】:Regular Expression for email validation. [duplicate] 【发布时间】:2011-04-09 02:43:51 【问题描述】:

可能重复:What is the best regular expression for validating email addresses?

我正在使用一个要求提供电子邮件地址的表格。我使用正则表达式作为

.*@.*\..*

但对于我的一些测试电子邮件 ID 来说,它无法正常工作,例如

dsrasdf@@@fer@hbdf.vjif

任何人都为我在 asp.net 中的电子邮件验证提供正则表达式,或者我可以使用任何其他方法。

请提出您的建议。

【问题讨论】:

作为一个经验法则:在正则表达式中使用. 之前至少要三思。请注意,....@...... 也匹配您的表达式。 @Michael:在这种特殊情况下,进行相当松散的验证实际上是有意义的。实际的电子邮件地址遵循高度复杂的规则,通常不值得努力创建过于复杂(读取错误)的正则表达式。例如,一些主要的免费邮件提供商不允许使用完全有效的“+”字符。巴姆。 没错,仍然,使用. 应该谨慎使用,在这种情况下,仍然是错误的。恕我直言,这个验证既不是“太松”也不是“太严格”,因为字符串既不是超集也不是真正有效电子邮件地址的子集。这是错误的。 【参考方案1】:
^([\w-\.]+)@((\[[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.)|(([\w-]+\.)+))([a-zA-Z2-4|[0-9]1,3)(\]?)$

【讨论】:

【参考方案2】:

这类东西最好依靠on the framework。

try 
    address = new MailAddress(address).Address;
 catch(FormatException) 
    //address is invalid

【讨论】:

虽然我只想说你使用的是 .Net 4,但我相当肯定早期版本在各种类型的有效电子邮件地址上都会失败。 对不起,但是这个 sn-p 代码是可以的,因为 .NET 2 必须捕获异常。 [msdn.microsoft.com/en-us/library/…]【参考方案3】:

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

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]2,4$

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

【讨论】:

以上是关于用于电子邮件验证的正则表达式。 [复制]的主要内容,如果未能解决你的问题,请参考以下文章

SQL 电子邮件验证(无正则表达式)

用于转换为 oracle pl/sql 的电子邮件的 salesforce 正则表达式

正则表达式,电子邮件验证从文本框中获取用户输入

在 JSON 中存储电子邮件验证正则表达式字符串

java - 如何使用正则表达式验证Java中的URL? [复制]

正则表达式验证模式只允许一个字符[重复]