validacion - validar formulario javascript html5
Extraiga todas las direcciones de correo electrónico de texto masivo usando jquery (6)
Aquí es cómo puede abordar esto:
HTML
<p id="emails"></p>
JavaScript
var text = ''sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmal.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproducts.com>, "NiTsdfeSh ThIdfsKaRe" <nthfsskare@ysahoo.in>, "akasdfsh kasdfstla" <akashkatsdfsa@yahsdfsfoo.in>, "Bisdsdfamal Prakaasdsh" <bimsdaalprakash@live.com>,; "milisdfsfnd ansdfasdfnsftwar" <dfdmilifsd.ensfdfcogndfdfatia@gmail.com>'';
function extractEmails (text)
{
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+/.[a-zA-Z0-9._-]+)/gi);
}
$("#emails").text(extractEmails(text).join(''/n''));
Resultado
sdabhikagathara@rediffmail.com dsfassdfhsdfarkal@gmail.com rfernsdfson@gmal.com gyfanamosl@gmail.com pidfpinfg@truformdftechnoproducts.com nthfsskare@ysahoo.in akashkatsdfsa@yahsdfsfoo.in bimsdaalprakash@live.com dfdmilifsd.ensfdfcogndfdfatia@gmail.com
Fuente: Extraiga el correo electrónico de texto masivo (con expresiones regulares, JavaScript y jQuery)
Demo 2 Aquí usando jQuery cada función de iterador
Estoy teniendo este texto a continuación:
sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmail.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproducts.com>, "NiTsdfeSh ThIdfsKaRe" <nthfsskare@ysahoo.in>, "akasdfsh kasdfstla" <akashkatsdfsa@yahsdfsfoo.in>, "Bisdsdfamal Prakaasdsh" <bimsdaalprakash@live.com>,; "milisdfsfnd ansdfasdfnsftwar" <dfdmilifsd.ensfdfcogndfdfatia@gmail.com>
Aquí los correos electrónicos están separados por ,
o ;
. Quiero extraer todos los correos electrónicos presentes anteriormente y almacenarlos en una matriz. ¿Hay alguna forma fácil de usar expresiones regulares para obtener todos los correos electrónicos directamente?
La función anterior es compatible con RFC2822 de acuerdo con Regexr.com
ES5:
var extract = function(value) {
var reg = /[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/g;
return value && value.match(reg);
}
ES6:
const reg = /[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/g
const extract = value => value && value.match(reg)
No necesitas jQuery para eso; El propio JavaScript soporta expresiones regulares integradas.
Echa un vistazo a la expresión regular para obtener más información sobre el uso de expresiones regulares con JavaScript.
Aparte de eso, creo que encontrará la respuesta exacta a su pregunta en algún otro lugar sobre Desbordamiento de pila: Source
Puedes usar esta expresión regular:
var re = /(([^<>()[/]//.,;:/s@/"]+(/.[^<>()[/]//.,;:/s@/"]+)*)|(/".+/"))@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/])|(([a-zA-Z/-0-9]+/.)+[a-zA-Z]{2,}))/g;
Puedes extraer los correos electrónicos así:
(''sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmail.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproducts.com>, "NiTsdfeSh ThIdfsKaRe" <nthfsskare@ysahoo.in>, "akasdfsh kasdfstla" <akashkatsdfsa@yahsdfsfoo.in>, "Bisdsdfamal Prakaasdsh" <bimsdaalprakash@live.com>,; "milisdfsfnd ansdfasdfnsftwar" <dfdmilifsd.ensfdfcogndfdfatia@gmail.com>'').match(re);
//["sdabhikagathara@rediffmail.com", "dsfassdfhsdfarkal@gmail.com", "rfernsdfson@gmail.com", "gyfanamosl@gmail.com", "pidfpinfg@truformdftechnoproducts.com", "nthfsskare@ysahoo.in", "akashkatsdfsa@yahsdfsfoo.in", "bimsdaalprakash@live.com", "dfdmilifsd.ensfdfcogndfdfatia@gmail.com"]
Sólo una actualización de la respuesta aceptada. Esto no funciona para los signos "más" en la dirección de correo electrónico. GMAIL es compatible con emailaddress+randomtext@gmail.com.
He actualizado a:
return text.match(/([a-zA-Z0-9._+-]+@[a-zA-Z0-9._-]+/.[a-zA-Z0-9._-]+)/gi);
function GetEmailsFromString(input) {
var ret = [];
var email = //"([^/"]+)/"/s+/<([^/>]+)/>/g
var match;
while (match = email.exec(input))
ret.push({''name'':match[1], ''email'':match[2]})
return ret;
}
var str = ''"Name one" <foo@domain.com>, ..., "And so on" <andsoon@gmx.net>''
var emails = GetEmailsFromString(str)