用于电子邮件验证的正则表达式。 [复制]
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,但我认为你可以这样使用它。
【讨论】:
以上是关于用于电子邮件验证的正则表达式。 [复制]的主要内容,如果未能解决你的问题,请参考以下文章
用于转换为 oracle pl/sql 的电子邮件的 salesforce 正则表达式