Tengo una lista de correos electrónicos y el correo electrónico tiene dos formatos:
name <email@address.com>email@address.comMe pregunto si hay una forma de dividir esta lista con diferentes separadores en Javascript.
Lista de ejemplos:
email@address.com,name1 <email1@address.com>,email2@address.com
o
email@address.com,email1@address.com,email2@address.com
o
email@address.com email1@address.com name2 <email2@address.com>
o
email@address.com email1@address.com email2@address.com
o
email@address.com name1 <email1@address.com> email2@address.como
email@address.com email1@address.com email2@address.com Por el momento, dividí la lista con los tres separadores para el formato de correo electrónico simple email@address.com y todavía estoy confundido sobre cómo hacerlo, incluido el nombre de formato name <email@address.com> .
Aquí está el código que usé para eso:
var emailInput = $(this); var clipboardData = e.originalEvent.clipboardData || window.clipboardData; var pastedData = clipboardData.getData('Text'); var emails = pastedData.split(/[\r,\s]+/); Lo que necesito extraer por ejemplo
email@adress.com name <email@address.com>
==> ["email@address.com","name <email@address.com>"]
Suponiendo que no está buscando un validador de direcciones de correo electrónico y que ya sabe que su lista tiene direcciones de correo electrónico, puede hacer lo siguiente:
let data = ` email1@address.com,name2 <email2@address.com>,email3@address.com email4@address.com,email5@address.com,email6@address.com email7@address.com email8@address.com name9 <email9@address.com> email10@address.com email11@address.com email12@address.com name13 <email13@address.com> email14@address.com email15@address.com email16@address.com `; let result = data.match(/[^,;<>\s]+@[^,;<>\s]+|[^,;<>\s]+\s+<[^,;<>\s]+@[^,;<>\s]+>/g); console.log(result);