Estoy tratando de crear un Regex personalizado para validar los correos electrónicos que siguen las reglas que se indican a continuación:
Tengo dos matrices: trueEmails contiene correos electrónicos válidos y notEmails contiene correos electrónicos no válidos.
Creé el siguiente Regex:
const email = /^[a-zA-Z]+(\d|.|\w)*@[a-zA-Z]+.[a-zA-Z]+.*[a-zA-Z]+$/;Mi Regex no funciona para la regla no. 2, 3, 4 y 6. Aquí está mi código.
const notEmails = [ // rule 1 '_test@email.com', '#test@email.com', '1test@email.com', // rule 2 'test&131@yahoo.com', // rule 3 'test@gmail@yahoo.com', // rule 4 'test@yahoo23.com', // rule 5 'test@yahdsd.com.', // rule 6 'white space@gmail.com' ] const trueEmails = [ // rule 1 'test@email.com', // rule 2 'test2email@yahoo.com', 'test_email@yahoo.com', 'test.123_.emai.l@yahoo.com', // rule 3 'test@gmail.com', // rule 4 'testsample@yahoo.co.in', // rule 5 'testdample232@gmail.com', // rule 6 'no_white_space@gmail.com' ] const email = /^[a-zA-Z]+(\d|.|\w)*@[a-zA-Z]+.[a-zA-Z]+.*[a-zA-Z]+$/; console.log("NotEmails, should return false") console.log(notEmails.map((each) => each + ' => ' + email.test(each))); console.log("trueEmails, should return true") console.log(trueEmails.map((each) => each + ' => ' + email.test(each)));Gracias por adelantado.
He actualizado la expresión regular para que funcione para usted. No es infalible, pero funciona para las restricciones que ha establecido.
const notEmails = [ // rule 1 '_test@email.com', '#test@email.com', '1test@email.com', // rule 2 'test&131@yahoo.com', // rule 3 'test@gmail@yahoo.com', // rule 4 'test@yahoo23.com', // rule 5 'test@yahdsd.com.', // rule 6 'white space@gmail.com' ] const trueEmails = [ // rule 1 'test@email.com', // rule 2 'test2email@yahoo.com', 'test_email@yahoo.com', 'test.123_.emai.l@yahoo.com', // rule 3 'test@gmail.com', // rule 4 'testsample@yahoo.co.in', // rule 5 'testdample232@gmail.com', // rule 6 'no_white_space@gmail.com' ] const email = /^[a-zA-Z]+[a-zA-Z0-9_.]+@[a-zA-Z.]+[a-zA-Z]$/; console.log("NotEmails, should return false") console.log(notEmails.map((each) => each + ' => ' + email.test(each))); console.log("trueEmails, should return true") console.log(trueEmails.map((each) => each + ' => ' + email.test(each)));Descripción
Regex: /^[a-zA-Z]+[a-zA-Z0-9_.]+@[a-zA-Z.]+[a-zA-Z]$/
^ Inicio de línea[a-zA-Z] cualquier caracter de az+ una o más veces[a-zA-Z0-9_.] cualquier carácter de az, y número, guiones bajos y puntos.+ una o más veces@ coincide con el signo @ literal[a-zA-Z.]+ cualquier carácter de az y puntos+ una o más veces$ fin de línea