我正在使用一个很酷的小部件从gmail/homail/yahoo等导入电子邮件地址.小部件仍然是测试版,我猜这就是为什么它不允许很多配置.它实际上只是用以下数据填充textarea:
"Name one" <foo@domain.com>, "Name Two" <foo@domain.com>, "And so on" <andsoon@gmx.net>
所以我想知道是否有人可以帮我写一个正则表达式或类似的东西,以便将所有值从字符串中取出来放入数组中.所需的格式是:
[{name: 'Name one', email: 'foo@domain'},{name: 'Name Two', email: 'foo@domain'},{name: 'And so on', email: 'andsoon@gmx.net'}]
我是一个完整的正则表达式菜鸟,我不知道如何在javascript中做到这一点.谢谢你的帮助!
Tra*_*er1 11
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)
Run Code Online (Sandbox Code Playgroud)