我有以下正则表达式来验证由';'
分隔的电子邮件地址列表\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
它的问题在哪里?
答案 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+)*)+$