2017-10-17 78 views
0

我试图用正则表达式分隔没有空格,逗号,分号和空格的电子邮件。我有这个字符串:如何使用正则表达式分隔无空格,逗号,分号和空格的电子邮件?

var emails = "[email protected] [email protected];[email protected], [email protected]" 

,我试图让他们putll所有电子邮件中使用该正则表达式的数组:

function extractEmails() { 
return emails.match(/\[email protected]\w+.com/); 
} 

,但似乎并不奏效。有关如何使用Regex获取所有电子邮件的任何想法?先谢谢你!

+0

我没有看到一种方式来拆分'user1 @ email.comuser2gmail.com'这样的东西,除非你维护一个lis T顶级域名,这是我上次检查的时间[很长](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) – j08691

+0

*“无空间”* - 你不能。如果地址中的顶级域名与某些其他顶级域名以相同的字母开头,该怎么办?比如,“讨价还价”应该分成“酒吧”和“增益收购者”,还是“讨价还价”和“猎人”? – nnnnnn

回答

0

所有你需要做的就是添加g修改,让所有的比赛:

var emails = "[email protected]\[email protected];[email protected], [email protected]"; 
 

 
function extractEmails() { 
 
return emails.match(/\[email protected]\w+.com/g); 
 
} 
 

 
console.log(
 
    extractEmails(emails) 
 
);

(在@包含.com之前,这只会工作,只要没有部分,当然,并应该有一个barcom.com域,它会失败,以及...)

+0

嗨CBroe,感谢您的意见。如果有2封电子邮件被NO SPACE分隔,有什么办法可以引发错误吗? – progx

+0

那么,如果你只需要匹配以'.com'结尾的地址,那么它应该按原样工作(除了上面提到的边缘情况)。至于检查你是否得到了'foo @ bar.comlorem @ ipsum'结果,我会建议循环它们,并使用第二个正则表达式测试每种单独的测试这种模式;两者融为一体可能会变得相当复杂。 – CBroe

+0

谢谢CBroe! – progx

相关问题