首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子邮件#2的正则表达式

电子邮件#2的正则表达式
EN

Stack Overflow用户
提问于 2013-02-12 21:36:16
回答 6查看 1.4K关注 0票数 2

我有一个正则表达式,我用它来检查一个字符串,看看它是否是电子邮件地址:

代码语言:javascript
复制
@"^((([\w]+\.[\w]+)+)|([\w]+))@(([\w]+\.)+)([A-Za-z]{1,3})$"

这适用于我测试过的所有电子邮件地址,前提是“@”前的部分至少有四个字符。

作品:

代码语言:javascript
复制
web1@domain.co.uk

不起作用:

代码语言:javascript
复制
web@domain.co.uk

如何更改正则表达式以允许少于4个字符的前缀??

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-02-16 02:59:27

我建议不要使用正则表达式来验证电子邮件(基于此处列出的原因) http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/

如果你不能发送确认邮件,在C#中一个很好的选择是尝试创建一个MailAddress并检查它是否失败。

如果您使用的是ASP.NET,则可以使用CustomValidator来调用此验证方法。

代码语言:javascript
复制
    bool isValidEmail(string email)
    {
        try
        {
            MailAddress m = new MailAddress(email);
            return true;
        }
        catch
        {
            return false;
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2013-02-12 21:42:11

在asp.net mvc帐户模型中用于电子邮件验证的“标准”正则表达式如下:

代码语言:javascript
复制
@"^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$"

它允许在@之前使用1+字符

票数 3
EN

Stack Overflow用户

发布于 2013-02-12 21:57:49

我认为检查有效电子邮件地址的最好方法是让用户输入两次,然后给他发送一封电子邮件,并使用验证链接质疑他收到了这个地址。

检查你的正则表达式和一个奇怪的有效电子邮件addresses列表,你会发现正则表达式对于电子邮件验证任务并不完美。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14833824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档