Javascript 用于多封电子邮件的正则表达式,用逗号分隔,并带有有效电子邮件
我有正则表达式来检查多个由逗号分隔的有效电子邮件,但我无法更新它以允许多个尾随和前导空格。我应该允许下面的模式匹配我的正则表达式Javascript 用于多封电子邮件的正则表达式,用逗号分隔,并带有有效电子邮件,javascript,regex,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?,)*(\
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
它只允许逗号后面的一个空格前加一个空格。我希望正则表达式在逗号前后允许多个空格,为什么不先吐出字符串:
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,}))$/));
}
函数getValidEmailAddresses(strInput)
{
返回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}.[0-9]++[1,3}.]);([a-zA 0-Z-0-9]+[a-Z])/;
}
\s?
表示“0或1个空白字符”(或“可选空白字符”)。将它们更改为\s*
“0个或更多空白字符”。我建议学习一个快速的正则表达式教程,量词是最基本的,在15-30分钟的时间里,你可能会更加熟悉正则表达式。太好了。类似于charmOther建议的更改:将@
添加到@
之前的否定类中,
添加到\.
之前的否定类中,并在$
锚定之前的末尾添加一个额外的\s*
(您当前的正则表达式与带有尾随空格的电子邮件列表不匹配)