Много искал, мало нашёл, поэтому подгоняю то, что нашёл под свои нужды. Сразу приведу удовлетворяющий меня вариант регулярного выражения, пояснения будут ниже.
/^\w((-|\+|\.|)\w)*@(\w[\w\-]*\w\.)+[a-zA-Z]{2,6}$/
Теперь пояснения
- разрешил символы ".","-","_" и "+" в имени пользователя, но они не могут стоять рядом
- имя пользователя должно начинаться и заканчиваться с буквы или цифры
- доменное имя не может начинаться и заканчиваться символом "-"
- зона состоит только из букв и содержит от 2 до 6 символов
- совсем убрал представление хоста в виде ip-адреса, т.к. с такими адресами не встречался и пользователи с такими адресами мне не нужны
Это регулярное выражение не проверяет e-mail на валидность по RFC 2822, но вполне справляется с проверкой адресов, которые можно получить на большинстве бесплатных почтовых сервисов. С корпоративными и личными доменами ещё проще, т.к. там вообще очень редко встречаются корявые адреса.
Комментариев нет:
Отправить комментарий