Pegándome con el widget de Plaxo para obtener contactos de correo desde cuentas de servicios web públicos he necesitado sacar por un lado el nombre del “individuo” y por otro su dirección de email para insertarlo en unos controles de un formulario.
Como no tengo ni idea de expresiones regulares, etc, etc, etc… me ha llevado un ratejo hacer la función, pero lo he conseguido y aquí está. A lo mejor alguien sabe hacerlo en una línea, pero yo no, y como no he encontrado nada por ahí que me resolviese el problema, lo he resuelto por fuerza bruta.
/*
mhCollectEmails
Devuelve un array con los nombres y los email de gente a partir de una cadena de texto.
Ej:
mhCollectEmails('"nombre1" <email1@dominio.com>, "nombre2" <email2@dominio.com>, "nombre3" <email3@dominio.com>');
>> [['nombre1', 'email1@dominio.com'], ['nombre2', 'email2@dominio.com'], ['nombre3', 'email3@dominio.com']]
@author Carlos
@requires Prototype
*/
function mhCollectEmails(emailString)
{
return emailString.match(/"[^"]+"\s+<[^<>]+>/gi).collect(function(e){
return e.match(/".*"|<.*>/g).collect(function(s) {
return s.replace(/"|<|>/g, '').replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '');
});
});
}
Esta función recoge una cadena con una lista de emails tal y como los escribe el widget de Plaxo en el textbox que hay que indicarle en la configuración, es decir, una lista de items separados por “, ” (coma y espacio). Cada item consta de un nombre o alias entre comillas, un espacio, y una dirección de correo dentro de los típicos caracteres “<>”, algo así como “Carlos” <carlos@undominio.com>.
Lo que hace es encontrar primero los bloques correspondientes a items completos y luego, para cada item, obtiene el nombre y el correo electrónico. De ese modo, devuelve un array cuyos elementos son arrays de dos elementos, el primero el nombre y el segundo el email.
Espero que os sirva para algo.
Descargar mhCollectEmails.js
One Comment on “Extraer nombres y correos de una cadena mediante JavaScript”
You can track this conversation through its atom feed.
Necesito saber como extraer la primera letra de una frase alguien me puede dar un manito
Posted on October 17, 2008 at 4:51 am.