1. 江湖人士首页
  2. IT江湖

C#使用正则表达式验证email是否合法

本文很早以前在发布到网上的博文整理,里面的代码或许没有过时,至于用于最新.net core的代码是否能够保证没有问题,并没有去测试,想来都是微软的技术,使用此方式对email进行合法性校验问题不大。

在做互联网项目的开发过程中,经常验证电子邮件格式的问题,对于此类的处理方式,想必大部分人都是使用正则表达式来验证;如下面的常见代码:

 /// <summary>
        /// 检查是否是正确Email地址
        /// </summary>
        /// <param name="emailAddress"></param>
        /// <returns></returns>
        public static bool CheckEmail(string emailAddress)
        {
            return Regex.IsMatch(emailAddress, @"^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$");
        }

对于这种常见的代码,验证比较常见的邮箱格式是没有问题的,如:[email protected];不过有的屌丝的邮箱是类似这种格式的,但它却是正确的电子邮件地址,如下:

[email protected];备注:此邮箱地址纯属举例,如有雷同,纯属巧合

对于这种格式的电子邮件地址,上面的代码返回值是False;如果这时候在你做的互联网项目中,客服接到客户的投诉电话说:“你们的网站做得真JB烂啊,我输入正确的邮件地址,总是提示老子错误”;这个时候客服和研发团队成员要崩溃了…;这时候苦逼了程序猿了,,Debug半天原来发现是这个正则错了。。。;这个时候维护人员心里面直骂娘,这TMD谁写的啊,坑死爹了啊。。

相信大家都遇到过这种问题,代码没有经过严格测试,随便在网上抠一段代码来简单输入几个测试用例应付差事完事;如果经过严格的测试,相信上面的场景是不会发生的了。对于锅内软件从业者的现状,圈里人都知道,也不便说什么了;现在就说说与程序员相关的问题吧。

像验证电子邮件地址是否合法这种技术活,方式太多了;只要能达到目的,不管你采取什么手段,解决问题最重要;不过对于懒人来说,自然有懒人的办法,.net的内裤里面虽然没有直接提供验证电子邮件的方法,不过可以利用一个叫MailAddress类来达到目的,废话不多说,直接上代码:

class Program
    {
        static void Main(string[] args)
        {

            string address = null;
            try
            {
                address = new MailAddress("[email protected]").Address;
            }
            catch (FormatException ex)
            {

                Console.WriteLine(ex.Message);
            }
            Console.WriteLine(address);
            Console.WriteLine(CheckEmail("[email protected]"));
        }

        /// <summary>
        /// 检查是否是正确Email地址
        /// </summary>
        /// <param name="emailAddress"></param>
        /// <returns></returns>
        public static bool CheckEmail(string emailAddress)
        {
            return Regex.IsMatch(emailAddress, @"^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$");
        }      
    }

看到了吧,一了百了。英文好的朋友可以使用:How to validate an email address using a regular expression? 在stackoverflow上搜索。

原创文章,作者:江小编,如若转载,请注明出处:https://jhrs.com/2019/28378.html

扫码关注【江湖人士】公众号,您会获得关于国外被动收入的最新资讯

WA付费会员QQ群:387027533,加这个群需要回答您的WA会员名,待核实后予以通过

普通QQ交流群:178758794,可分享交流建站的各类经验和知识

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 × 3 =