Вы можете значительно упростить вещи, сначала разделив их запятыми, как сказал Пабло, а затем неоднократно применяя регулярное выражение для проверки каждого отдельного электронного письма. Затем вы также можете указать на то, что это плохо, но здесь есть большой нюанс.
Взгляните на регулярное выражение в статье Сравнение адреса электронной почты для проверки правильности регулярных выражений . Есть еще одно еще лучшее регулярное выражение, которое я не смог найти сейчас, но дело в том, что правильное регулярное выражение для проверки электронной почты невероятно сложно, потому что правила для действительного адреса электронной почты, указанного в RFC, невероятно сложны.
У вас эта часть (\.[a-z]{2,3})+
выскочила на меня; группу из двух или трех букв {2,3}
, которую я часто вижу в качестве попытки подтвердить домен верхнего уровня, но (1) ваше регулярное выражение разрешает одну или более из этих групп и (2) вы исключит действительные адреса электронной почты из доменов, таких как .info
или .museum
(многие сайты отклоняют мой .us
адрес, поскольку они считают, что только 3-буквенные домены являются законными.)
Мой совет отклонять серьезно недействительные адреса, оставляя окончательную проверку серверу, - разрешать в основном (что угодно) @ (что угодно). (Что угодно) - проверять только на "at" и "dot", и, конечно, разрешить несколько точек.
EDIT: пример для "простого" регулярного выражения
[^@]+@[^.]+(\.[^.]+)+
Это соответствует
- test@test.com
- test1@test.com
- test2@test.com
- foo@bar.baz.co.uk
- myname@modern.museum
и не совпадает foo@this....that
Примечание. Даже при этом будут отклонены некоторые действительные адреса электронной почты, потому что все, что угодно разрешено слева от @
- даже другое @
- если все это экранировано правильно. Но я никогда не видел такого за 25 лет использования электронной почты в реальной жизни.