Najlepsze Wyrażenie regularne do walidacji wiadomości e-mail w C#
Widziałem wiele wyrażeń regularnych dla różnych języków programowania, które mają potwierdzać adresy e-mail. Widziałem wiele komentarzy mówiących, że wyrażenia, o których mowa, nie działają w niektórych przypadkach i że są albo zbyt surowe, albo zbyt liberalne. To, czego szukam, to wyrażenie regularne, którego mogę użyć w moim kodzie C#, które jest ostateczne.
Najlepsze co znalazłem to to
^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$
Czy jest coś lepszego? 4 answers
Adres e-mail: RFC 2822 Format
Pasuje do zwykłego adresu e-mail. Nie sprawdza domeny najwyższego poziomu.
wymaga " case insensitive" możliwość włączenia.
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Użycie:
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);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-10 14:45:51
Pierwsza opcja (zła z powodu throw-catch, ale MS zrobi za ciebie robotę):
bool IsValidEmail(string email)
{
try {
var mail = new System.Net.Mail.MailAddress(email);
return true;
}
catch {
return false;
}
}
Druga opcja to read wiedziałem, jak zweryfikować adres e-mail, dopóki nie przeczytałem specyfikacji RFC i RFC
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-23 11:24:02
Ta funkcja C# używa wyrażenia regularnego do oceny, czy podany adres e-mail jest poprawny składniowo, czy nie.
public static bool isValidEmail(string inputEmail)
{
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))
return (true);
else
return (false);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-23 11:24:01
Email Validation Regex
^[a-z0-9] [- a-z0-9._] + @([- a-z0-9]+.) +[a-z]{2,5}$
LUB
^[a-z0-9] [- a-z0-9._] + @([- a-z0-9]+[.]) +[a-z]{2,5}$
Link Demo:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 06:27:28