csharp:Validate email address using C#

 /// <summary>
    /// 
    /// </summary>
    /// <param name="email"></param>
    /// <returns></returns>
    public bool IsValidEmail(string email)
    {
        try
        {
            var addr = new System.Net.Mail.MailAddress(email);
            return addr.Address == email;
        }
        catch
        {
            return false;
        }
    }
    /// <summary>
    /// using System.ComponentModel.DataAnnotations; 4.5 over  涂聚文(Geovin Du)标注
    /// </summary>
    /// <param name="source"></param>
    /// <returns></returns>
    public bool IsValidEmailDu(string source)
    {
        //https://referencesource.microsoft.com/#System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs,54
        return new EmailAddressAttribute().IsValid(source);
    }


    static Regex ValidEmailRegex = CreateValidEmailRegex();

    /// <summary>
    /// Taken from http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
    /// </summary>
    /// <returns></returns>
    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  bool EmailIsValid(string emailAddress)
    {
        bool isValid = ValidEmailRegex.IsMatch(emailAddress);

        return isValid;
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="email"></param>
    /// <returns></returns>
    public  bool EmailIsValidGeovin(string email)
    {
        string expression = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";

        if (Regex.IsMatch(email, expression))
        {
            if (Regex.Replace(email, expression, string.Empty).Length == 0)
            {
                return true;
            }
        }
        return false;
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="email"></param>
    /// <returns></returns>
    public static bool IsValidEmailTu(this string email)
    {
        string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$";
        var regex = new Regex(pattern, RegexOptions.IgnoreCase);
        return regex.IsMatch(email);
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="emailAddress"></param>
    /// <returns></returns>
    public static bool IsValidEmailAddress(string emailAddress)
    {
        bool MethodResult = false;

        try
        {
            System.Net.Mail.MailAddress m = new System.Net.Mail.MailAddress(emailAddress);

            MethodResult = m.Address == emailAddress;

        }
        catch //(Exception ex)
        {
            //ex.HandleException();https://stackoverflow.com/questions/1365407/c-sharp-code-to-validate-email-address

        }

        return MethodResult;

    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="InputEmail"></param>
    /// <returns></returns>
    public static bool IsValidEmailId(string InputEmail)
    {
        Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
        Match match = regex.Match(InputEmail);
        if (match.Success)
            return true;
        else
            return false;
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="emailAddress"></param>
    /// <returns></returns>
    public bool ValidateEmail(string emailAddress)
    {
        string regexPattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$";
        Match matches = Regex.Match(emailAddress, regexPattern);
        return matches.Success;
    }

  

posted @ 2020-08-05 21:18  ®Geovin Du Dream Park™  阅读(269)  评论(0编辑  收藏  举报