【问题标题】: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:在这种特殊情况下,进行相当松散的验证实际上是有意义的。实际的电子邮件地址遵循高度复杂的规则,通常不值得努力创建过于复杂(读取错误)的正则表达式。例如,一些主要的免费邮件提供商不允许使用完全有效的“+”字符。巴姆。
  • 没错,仍然,使用. 应该谨慎使用,在这种情况下,仍然是错误的。恕我直言,这个验证既不是“太松”也不是“太严格”,因为字符串既不是超集也不是真正有效电子邮件地址的子集。这是错误的。

标签: c# asp.net regex email-validation


【解决方案1】:
^([\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})(\]?)$

【讨论】:

    【解决方案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,但我认为你可以这样使用它。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多