Tengo una expresión regular para correos electrónicos:
const EMAIL = /[a-z0-9-_.+]+@[a-z0-9]+[a-z0-9-.]*\.[a-z0-9]{2,9}/;Y uno para validar si están separados por comas. Lo necesito para la validación de entrada.
const COMAS = new RegExp( `^(?:${VALID_EMAIL.source}(?:, *)?)+$`, 'i', );Quería agregar una condición de que, de ahora en adelante, la longitud máxima del correo sería de 50. Probé soluciones de otros subprocesos SO, pero ninguno de ellos funciona para mí. Funciona cuando solo hay un correo en la matriz, pero para muchos cuenta la longitud de todas las cadenas en la matriz...
const VALID_EMAIL = /(?!.{51})[a-z0-9-_.+]+@[a-z0-9]+[a-z0-9-.]*\.[a-z0-9]{2,9}/;Puede usar esta expresión regular con una clase de carácter negada:
const VALID_EMAIL = /(?![^,]{51})[-a-z0-9_.+]+@[a-z0-9]+[a-z0-9-.]*\.[a-z0-9]{2,9}/; (?!.{51}) fallará la coincidencia si hay 51 caracteres en la entrada, mientras que (?![^,]{51}) fallará solo si hay 51 caracteres que no sean comas en un correo electrónico.