Javascript 使用jquery从批量文本中提取所有电子邮件地址

Javascript 使用jquery从批量文本中提取所有电子邮件地址,javascript,jquery,regex,text-extraction,email-address,Javascript,Jquery,Regex,Text Extraction,Email Address,我对这篇课文有如下建议: sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmail.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproduct

我对这篇课文有如下建议:

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>
sdabhikagathara@rediffmail.com“ASSDDF”、“rodnsdfald Ferdfson”、“Affdmdol Gondfgale”、“truform techno”、“NiTsdfeSh ThIdfsKaRe”、“akasdfsh kasdfstla”、“Bisdsddfamal Prakasdsh”,;“milisdfsfnd ansdfasdfnsftwar”
此处电子邮件按
分类
我想提取上面显示的所有电子邮件,并将它们存储在数组中。是否有任何简单的方法可以使用正则表达式直接获取所有电子邮件?

您可以使用此正则表达式:

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;
var re=/([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*(\“+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.+]124;([a-zA Z-0-9]+[a-2-Z]){g;
您可以这样提取电子邮件:

('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"]
('sdabhikagathara@rediffmail.com“ASSDDF”、“rodnsdfald Ferdfson”、“Affdmdol Gondfgale”、“truform techno”、“NiTsdfeSh ThIdfsKaRe”、“akasdfsh kasdfstla”、“Bisddfamal Prakasdsh”、“Milissdfsfnd Ansdfsdfasftwar”)。匹配(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"]

你不需要jQuery;JavaScript本身支持内置正则表达式

查看有关将正则表达式与JavaScript一起使用的更多信息

除此之外,我认为您可以在堆栈溢出的其他地方找到问题的确切答案-

函数GetEmailsFromString(输入){
var-ret=[];
var email=/\“([^\“]+)\“\s+\]+)\>/g
var匹配;
while(匹配=email.exec(输入))
ret.push({'name':匹配[1],'email':匹配[2]})
返回ret;
}

var str=''Name one',…,“等等”

以下是如何处理此问题:

HTML

<p id="emails"></p>

资料来源:


使用jQuery的每个迭代器函数

只是对已接受答案的更新。这不适用于电子邮件地址中的加号。GMAIL支持emailaddress+randomtext@gmail.com.

我已更新到:

return text.match(/([a-zA-Z0-9._+-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);

波纹管功能符合以下要求:RFC2822

ES5:

ES6:


嗯,鉴于您的示例“这里的电子邮件由
分隔”。“似乎是一个无效的语句。您可能是指
和/或
?@MarkSchultheiss:请参阅gmail-to,cc和bcc-list。用逗号或分号分隔电子邮件是完全有效的。是的,但您说的单引号/撇号与您的示例数据不匹配。whoaaa…..我的错。现在编辑我已经为e编写了一个库。”xtract emails from arbitral text@Thank leniel….我期待着所有电子邮件都使用jquery迭代器。demo 2 works gr8 fr很高兴知道它很有用!:)它不应该读
extractEmails($(“#emails”).text()).join('\n')吗
还是我遗漏了什么?啊,好吧,我不知怎么遗漏了第一行
var text=…
,一定是假设它是从段落中抽出来的(并写回它或什么)。谢谢!低估了回答!
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'));
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
return text.match(/([a-zA-Z0-9._+-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
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);
}
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)
 const = regex = /\S+[a-z0-9]@[a-z0-9\.]+/img
"hello sean@example.com how are you? do you know bob@example.com?".match(regex)