Tengo la siguiente expresión regular: /(\s?[^\s,]+@[^\s,]+.[^\s,]+\s?;)*(\s?[^\s,] +@[^\s,]+.[^\s,]+)/g
¿Podría decirme por qué coincide con esta cadena: "hNw6B@90.com;tesr" y no con esta: "hNw6B@90.com; test"?
No debe coincidir con la primera cadena. Sin embargo, si hay un correo electrónico válido después del ; como test@abv.bg, debe coincidir.
Estaré muy agradecido si me pudieras ayudar.
Puedes usar
^[^@\s;]+@[^\s;]+\.[^\s;]+(?:\s*;\s*[^@\s;]+@[^\s;]+\.[^\s;]+)*;?$Vea la demostración de expresiones regulares . Detalles :
^ - comienzo de la cadena[^@\s;]+ - cero o más caracteres que no sean @ , espacios en blanco y ;@ - un carácter @[^\s;]+ - cero o más caracteres que no sean espacios en blanco y ;\. - un punto[^\s;]+ - cero o más caracteres que no sean espacios en blanco y ;(?:\s*;\s*[^@\s;]+@[^\s;]+\.[^\s;]+)* - cero o más repeticiones de un ; encerrado con cero o más espacios en blanco, y luego el mismo patrón que el anterior;? - un opcional ;$ - final de la cadena.