【发布时间】:2013-02-12 13:36:16
【问题描述】:
我有一个正则表达式,用于检查字符串是否为电子邮件地址:
@"^((([\w]+\.[\w]+)+)|([\w]+))@(([\w]+\.)+)([A-Za-z]{1,3})$"
这适用于我测试过的所有电子邮件地址,前提是“@”之前的位至少有四个字符长。
作品:
web1@domain.co.uk
不起作用:
web@domain.co.uk
如何更改正则表达式以允许少于 4 个字符的前缀??
【问题讨论】:
-
我刚刚运行了这两个示例,它们返回为真。如果它失败了,那一定是其他原因。
-
对我来说效果很好。
-
工作得很好:rubular.com/r/DMe37LGXxt
-
@Phil 我没有否决它,但它可能会被否决。如果您使用 C#,您应该尝试将电子邮件地址加载到 System.Net.Mail.MailAddress 以确定它是否是正确的电子邮件地址。
-
@Phil - 没问题 - 如果您向其中传递无效的电子邮件地址,MailAddress 类将失败,所以我通常会这样做:MailAddress m;尝试 { m = new MailAddress("test@test.com"); } catch { throw new Exception("无效的电子邮件地址"); } - 如果您使用的是 asp.net,这可以连接到 CustomValidator。这将告诉您,您的电子邮件地址至少以有效方式格式化。