正则表达式适用于多封电子邮件,用有效的电子邮件将逗号分隔

时间:2019-11-14 10:36:40

标签: javascript regex

我有正则表达式来检查由逗号分隔的多个有效电子邮件,但是我无法对其进行更新以允许多个尾随和前导空格。我应该允许以下模式匹配我的正则表达式。

abc@test.com,bcd@test.com, new@test.com,   hello@test.com   ,new@test.com // allow
abc@test.com bcd@test.comnew@test.com// don't allow

我现在使用的正则表达式。

^(\s?[^\s,]+@[^\s,]+\.[^\s,]+\s?,)*(\s?[^\s,]+@[^\s,]+\.[^\s,]+)$

上述正则表达式不允许使用模式

abc@test.com,bcd@test.com, new@test.com,   hello@test.com   ,new@test.com

在逗号后的逗号之前只能有一个空格。我希望正则表达式在逗号前后允许多个空格

1 个答案:

答案 0 :(得分:0)

为什么不先吐出字符串:

function getValidEmailAddresses(strInput)
{
return strInput.split(',').map(p => p.trim())
               .filter(c=> c.test(/^(([^<>()\[\]\\.,;:\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,}))$/));

}