正则表达式的电子邮件列表,验证无效的电子邮件地址

时间:2013-04-14 09:15:25

标签: regex validation

我有以下正则表达式来验证由';'

分隔的电子邮件地址列表
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*

它曾经正常工作(对于我的测试),直到我发现它有问题。

它不仅允许这样的东西(打算) Email@domain.com; Email@domain.com; Email@domain.com

它允许这样的东西:(不打算) 电子邮件@ domain.comEmail @ domain.comEmail @ domain.com

它的问题在哪里?

3 个答案:

答案 0 :(得分:1)

这是使用正则表达式检查电子邮件的标准方法:\b\w+@[\w.]+\.[A-z.]{2,4}\b
它并不完美,但它应该适合你的榜样。
您也可以用分号拆分字符串,然后逐个验证电子邮件。

答案 1 :(得分:1)

当时验证一封电子邮件可能是你最干净的赌注,否则正则表达式会非常难看。特别是如果您稍后向地址添加更复杂的要求。当时做一个地址的一大好处就是你有一个很好的问题,即how to validate an email address using regex

答案 2 :(得分:0)

试试这个:

(?:(?:^|;)\w+(?:[-+.]\w+)*@\w+(?:[-.]\w+)*\.\w+(?:[-.]\w+)*)+$