Regex Email validation

后端 未结 30 878
北海茫月
北海茫月 2020-11-22 12:16

I use this

@\"^([\\w\\.\\-]+)@([\\w\\-]+)((\\.(\\w){2,3})+)$\"

regexp to validate the email

([\\w\\.\\-]+) - this is f

相关标签:
30条回答
  • 2020-11-22 12:32

    I think your caret and dollar sign are part of the problem You should also modify the regex a little, I use the next @"[ :]+([\w.-]+)@([\w-.])+((.(\w){2,3})+)"

    0 讨论(0)
  • 2020-11-22 12:32

    I've been using the Regex.IsMatch().

    First of all you need to add the next statement:

    using System.Text.RegularExpressions;
    

    Then the method looks like:

    private bool EmailValidation(string pEmail)
    {
                     return Regex.IsMatch(pEmail,
                     @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
                     @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$",
                     RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
    }
    

    It's a private method because of my logic but you can put the method as static in another Layer such as "Utilities" and call it from where you need.

    0 讨论(0)
  • 2020-11-22 12:33

    Best email validation regex

    [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
    

    And it's usage :-

    bool isEmail = Regex.IsMatch(emailString, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
    
    0 讨论(0)
  • 2020-11-22 12:35

    I found nice document on MSDN for it.

    How to: Verify that Strings Are in Valid Email Format http://msdn.microsoft.com/en-us/library/01escwtf.aspx (check out that this code also supports the use of non-ASCII characters for Internet domain names.)

    There are 2 implementation, for .Net 2.0/3.0 and for .Net 3.5 and higher.
    the 2.0/3.0 version is:

    bool IsValidEmail(string strIn)
    {
        // Return true if strIn is in valid e-mail format.
        return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); 
    }
    

    My tests over this method give:

    Invalid: @majjf.com
    Invalid: A@b@c@example.com
    Invalid: Abc.example.com
    Valid: j..s@proseware.com
    Valid: j.@server1.proseware.com
    Invalid: js*@proseware.com
    Invalid: js@proseware..com
    Valid: ma...ma@jjf.co
    Valid: ma.@jjf.com
    Invalid: ma@@jjf.com
    Invalid: ma@jjf.
    Invalid: ma@jjf..com
    Invalid: ma@jjf.c
    Invalid: ma_@jjf
    Invalid: ma_@jjf.
    Valid: ma_@jjf.com
    Invalid: -------
    Valid: 12@hostname.com
    Valid: d.j@server1.proseware.com
    Valid: david.jones@proseware.com
    Valid: j.s@server1.proseware.com
    Invalid: j@proseware.com9
    Valid: j_9@[129.126.118.1]
    Valid: jones@ms1.proseware.com
    Invalid: js#internal@proseware.com
    Invalid: js@proseware.com9
    Invalid: js@proseware.com9
    Valid: m.a@hostname.co
    Valid: m_a1a@hostname.com
    Valid: ma.h.saraf.onemore@hostname.com.edu
    Valid: ma@hostname.com
    Invalid: ma@hostname.comcom
    Invalid: MA@hostname.coMCom
    Valid: ma12@hostname.com
    Valid: ma-a.aa@hostname.com.edu
    Valid: ma-a@hostname.com
    Valid: ma-a@hostname.com.edu
    Valid: ma-a@1hostname.com
    Valid: ma.a@1hostname.com
    Valid: ma@1hostname.com
    
    0 讨论(0)
  • 2020-11-22 12:35

    Try this on for size:

    public static bool IsValidEmailAddress(this string s)
    {
        var regex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
        return regex.IsMatch(s);
    }
    
    0 讨论(0)
  • 2020-11-22 12:35
    new System.ComponentModel.DataAnnotations.EmailAddressAttribute().IsValid(input)
    
    0 讨论(0)
提交回复
热议问题