¿Cómo validar una dirección de correo electrónico usando una expresión regular?
Frecuentes
Visto 1,476 veces
3511
A lo largo de los años, he desarrollado lentamente una expresión regular que valida la MAYORÍA de las direcciones de correo electrónico correctamente, asumiendo que no utilizan una dirección IP como parte del servidor.
Lo uso en varios programas PHP y funciona la mayor parte del tiempo. Sin embargo, de vez en cuando me contacta alguien que tiene problemas con un sitio que lo usa, y termino teniendo que hacer algunos ajustes (más recientemente me di cuenta de que no estaba permitiendo TLD de 4 caracteres).
¿Cuál es la mejor expresión regular que tiene o ha visto para validar correos electrónicos?
He visto varias soluciones que usan funciones que usan varias expresiones más cortas, pero prefiero tener una expresión compleja larga en una función simple en lugar de varias expresiones cortas en una función más compleja.
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas regex validation email email-validation string-parsing or haz tu propia pregunta.
Algo relevante XKCD - gerrit
La expresión regular que puede validar que un IDNA está formateado correctamente no encaja en stackexchange. (las reglas sobre canonicalización eran realmente tortuosas y particularmente inadecuadas para el procesamiento de expresiones regulares) - Jasen
Por qué no deberías hacer esto: ¿Puede causar daño validar direcciones de correo electrónico con una expresión regular? - klutt
Las expresiones regulares pueden ser variable como en algunos casos, una estafa de correo electrónico puede contener un espacio y, en otras ocasiones, no puede contener espacios. - Ṃųỻịgǻňạcểơửṩ
@Jasen Afortunadamente, no es necesario que las direcciones de correo electrónico tengan un IDNA válido. Las direcciones de correo electrónico se definen de esta manera para compatibilidad con reenvíos con extensiones de la sintaxis IDNA. - awwright