expresion - La mejor expresión regular para la validación de correo electrónico en C#
expresion regular para correo electronico (4)
Dirección de correo electrónico: RFC 2822 Format
Coincide con una dirección de correo electrónico normal. No verifica el dominio de nivel superior.
Requiere que la opción "distinga entre mayúsculas y minúsculas" esté activada.
[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Uso:
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);
He visto una multitud de expresiones regulares para diferentes lenguajes de programación que pretenden validar direcciones de correo electrónico. He visto muchos comentarios que dicen que las expresiones en cuestión no funcionan para ciertos casos y que son demasiado estrictas o demasiado permisivas. Lo que busco es una expresión regular que pueda usar en mi código C # que sea definitiva.
Lo mejor que he encontrado es esto
^([/w/./-]+)@([/w/-]+)((/.(/w){2,3})+)$
¿Hay algo mejor?
Esta función C # usa una expresión regular para evaluar si la dirección de correo electrónico pasada es sintácticamente válida o no.
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);
}
Primera opción (mala por throw-catch, pero MS funcionará para usted):
bool IsValidEmail(string email)
{
try {
var mail = new System.Net.Mail.MailAddress(email);
return true;
}
catch {
return false;
}
}
La segunda opción es leer . Sabía cómo validar una dirección de correo electrónico hasta que leí la ex-parrot.com/~pdw/Mail-RFC822-Address.html RFC y ex-parrot.com/~pdw/Mail-RFC822-Address.html
Validación de correo electrónico Regex
^ [a-z0-9] [- a-z0-9 ._] + @ ([- a-z0-9] +.) + [az] {2,5} $
O
^ [a-z0-9] [- a-z0-9 ._] + @ ([- a-z0-9] + [.]) + [az] {2,5} $
Enlace demo: