Estaba leyendo este enlace para entender la expresión regular: https://www3.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html
En mi código, esto es lo que tengo:
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
Estaba probando este correo electrónico: " test@tatsu.works ", y recibí el error "Ingrese una ID de correo electrónico válida"
Si entiendo bien, está relacionado con la sección final .([A-Za-z] {2,4} )$/
Pensé que {2,4} significa de 2 a 4 caracteres, así que cambié a {2,6}, pero sigo recibiendo el error. Básicamente, ".works" puede tener cualquier número de caracteres.
¿Puedo saber lo que hago mal?
Saludos cordiales
================================================== =============== EDITAR: Aparentemente, cambiar a {2,6} o {2,} funciona, pero la razón por la que no funciona trabajar para mí es porque estoy usando Chrome y de alguna manera el javascipt no se actualiza (creo que está relacionado con la cookie)
Cuando cambié a Edge, la expresión regular funciona.
De todos modos, gracias al usuario Wiktor Stribiżew
Analizar la validez de los correos electrónicos usando una expresión regular no es un problema trivial.
Estos son todos los correos electrónicos válidos en los que su expresión regular fallará
'Long live the king'@com
This\ is\ my#@email.address
Fred\@barney@bedrock.gov
Consulte https://beesbuzz.biz/code/439-Falsehoods-programmers-believe-about-email y busque información sobre las direcciones de correo electrónico.
Simplemente usaría filter_var con el indicador FILTER_VALIDATE_EMAIL para verificar si una dirección de correo electrónico tiene el formato correcto.
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// valid email address
}