首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中如何判断/验证字符串是电子邮箱格式呢?

C#/.NET/.NET Core应用程序编程开发中如何判断/验证字符串是电子邮箱格式呢?

.NET C# Email 邮箱验证 .NET Core 3.14K 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,如何判断或者验证一个指定的字符串是电子邮箱格式呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    使用.NET内置的邮箱类System.Net.Mail.MailAddress来验证指定的字符串是否是正确的电子邮箱格式,如下:

    登录后复制
    bool IsValidEmail(string email) { try { var addr = new System.Net.Mail.MailAddress(email); return addr.Address == email; } catch { return false; } }
    Rector的个人主页

    Rector

    2020-05-18 回答

    • 0

      如果是.NET 4.5 +,可以使用命名空间System.ComponentModel.DataAnnotationsEmailAddress特性标记来判断指定的字符串是否是正确的电子邮箱格式,如下:

      登录后复制
      using System.ComponentModel.DataAnnotations; class ValidateSomeEmails { static void Main(string[] args) { var foo = new EmailAddressAttribute(); bool bar; bar = foo.IsValid("someone@somewhere.com"); //true bar = foo.IsValid("someone@somewhere.co.uk"); //true bar = foo.IsValid("someone+tag@somewhere.net"); //true bar = foo.IsValid("futureTLD@somewhere.fooo"); //true bar = foo.IsValid("fdsa"); //false bar = foo.IsValid("fdsa@"); //false bar = foo.IsValid("fdsa@fdsa"); //false bar = foo.IsValid("fdsa@fdsa."); //false if (new EmailAddressAttribute().IsValid("someone@somewhere.com")) bar = true; } }
      Rector的个人主页

      Rector

      2020-05-18 回答

      • 0

        使用正则表达式来验证指定的字符串是否是正确的电子邮箱格式,如下:

        登录后复制
        using System.Text.RegularExpressions; public static class Validator { static Regex ValidEmailRegex = CreateValidEmailRegex(); private static Regex CreateValidEmailRegex() { string validEmailPattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$"; return new Regex(validEmailPattern, RegexOptions.IgnoreCase); } internal static bool EmailIsValid(string emailAddress) { bool isValid = ValidEmailRegex.IsMatch(emailAddress); return isValid; } }
        Rector的个人主页

        Rector

        2020-05-18 回答

        我来回答