неадекватный блог

20 янв. 2009 г.

RegExp для проверки адреса e-mail

Много искал, мало нашёл, поэтому подгоняю то, что нашёл под свои нужды. Сразу приведу удовлетворяющий меня вариант регулярного выражения, пояснения будут ниже.

/^\w((-|\+|\.|)\w)*@(\w[\w\-]*\w\.)+[a-zA-Z]{2,6}$/

Теперь пояснения

  • разрешил символы ".","-","_" и "+" в имени пользователя, но они не могут стоять рядом
  • имя пользователя должно начинаться и заканчиваться с буквы или цифры
  • доменное имя не может начинаться и заканчиваться символом "-"
  • зона состоит только из букв и содержит от 2 до 6 символов
  • совсем убрал представление хоста в виде ip-адреса, т.к. с такими адресами не встречался и пользователи с такими адресами мне не нужны

Это регулярное выражение не проверяет e-mail на валидность по RFC 2822, но вполне справляется с проверкой адресов, которые можно получить на большинстве бесплатных почтовых сервисов. С корпоративными и личными доменами ещё проще, т.к. там вообще очень редко встречаются корявые адреса.

Комментариев нет:

Отправить комментарий