Проверьте правильность введенного адреса электронной почты

Проверка корректности ввода адреса электонной почты с помощью скрипта.

В приведеннном Примере по щелчку по кнопке формы срабатывает событие onclick и
с помощью JavaScript вызывается функция с именем postEmail().

Функция проверяет, корректно ли введен адрес электронной почты.
При этом выводится сообщение об ошибке или наоборот, правильности ввода данных.

Для валидации (проверки) правильности заполнения адреса электронной почты
выбрана строка /^[^s()<>@,;:/]+@w[w.-]+.[a-z]<2,>$/i

С помощью этой строки можно проверить основные правила написания адреса электронной почты.

Инструмент позволяет проверить доступность почтового сервера получателя и возможность доставки электронных сообщений в указанный почтовый ящик.

Обратите внимание, что не все почтовые сервисы отвечают на наши запросы, поэтому, мы не можем гарантировать 100% точности получаемых результатов.

  1. Выясняем почтовые сервера домена.
  2. Подключаемся к каждому почтовому серверу и проверяем наличие на нем указанного email.

Заполните поле “email для проверки” и нажмите кнопку “Запуск”.

  1. Все почтовые сервера домена сообщили, что email доступен: email доступен в почтовом домене.
  2. Все почтовые сервера домена сообщили, что email недоступен: email не доступен в почтовом домене.
  3. Часть почтовых серверов домена сообщили, что email доступен, а часть — что нет. Это означает, что часть почтовых серверов, сообщивших, что email на них недоступен:
    • либо неисправны,
    • либо не используются для получения сообщений (используются только для отправки),
    • либо на них используются спам-фильтры, блокирующие ответ нашему сервису.

    Предоставляя пользователю возможность заполнения полей на сайте, следует проверять введенные данные на валидность. Это позволит предупредить пользователя о случайных ошибках, а так же даст дополнительную защиту от спама. Ярким примером является форма обратной связи, обязательными полями которой часто бывают email и телефон. Займемся их проверкой на правильность заполнения с помощью javascript.

    Читайте также  Почему не работает яндекс навигатор на айфоне

    Информация лучше воспринимается на примерах, поэтому посмотрим готовую форму в действии:

    Пожалуйста, заполните все поля формы!

    E-mail:
    Телефон:

    Для начала разберем применяемые регулярные выражения, а полный код формы и javascript функций я приведу в конце статьи.

    Валидность адреса электронной почты

    Рассмотрим адрес электронной почты (test@mail.ru). Вот его обязательные части:

    • Название (test) — один или много символов;
    • Знак собаки (@);
    • Доменное имя почтового сервера (mail) — один или много символов;
    • Точка (.);
    • Доменное имя первого уровня (ru) от двух до пяти букв.

    Составим регулярное выражение для наших требований:

    Разберём правило по частям:

    1. Регулярное выражение должно открываться и закрываться символами «/» . После закрывающегося символа можно указать директиву. В нашем случае такой директивной является «i» , которая отключает проверку вводимых букв на регистр. То есть, становится не важно, ввели «test@mail.ru» или «Test@Mail.RU».
    2. Знаки «^» и «$» обозначают начало и конец проверяемой строки. Если их убрать, то правило вернет положительный результат даже если в начале или конце электронного адреса поставить запрещенные знаки. То есть, при вводе «%:&test@mail.ru#6&» функция проверки вернет положительный результат, так как в строке имеется последовательность символов, удовлетворяющая нашему правилу. Для исключения такой возможности указываем, что правило должно применяться ко всей строке, а не к её части.
    3. Блок «[w-.]+» отвечает за проверку названия ящика. В квадратных скобках указываем разрешенные символы: «w» — все латинские буквы, цифры и знак подчеркивания. Так же рекомендую добавлять знак тире и точку «-.» . «+» после квадратных скобок указывает на возможность повторения символов — один или много раз.
    4. Далее идет знак собаки и доменное имя почтового сервера — «@[w-]+» . Здесь практически тоже самое что и в предыдущем блоке. Исключаем только из набора символов точку.
    5. Осталось прописать правило для проверки наличия точки и корректности доменного имени верхнего уровня (ru,com,info). «.[a-z]<2,4>» . Для обозначения знака точки мы указываем её с обратным слешем «.» Без него она будет восприниматься зарезервированным символом регулярки, который обозначает возможность наличия на её месте любого символа. За точкой должно следовать доменное имя верхнего уровня. Это минимум 2 латинские буквы — «[a-z]<2,4>» .
    Читайте также  Прога для караоке на компе русская версия

    Разобранный пример немного упрощен для лучшего восприятия. У него есть недостаток — первым знаком в email не может быть тире или точка, но приведенное регулярное выражение этого не учитывает. Чтобы это исправить следует его немного поправить:

    Проверка валидности номера телефона в javascript

    С номером телефона ситуация сложнее, так как номер можно ввести десятками способов:

    Есть несколько выходов из ситуации:

    • продумать все возможные шаблоны и составлять для них правила;
    • заставить посетителя вводить телефон по определенному шаблону;
    • ограничиться проверкой на случайные ошибки.

    Для форм обратной связи последний вариант кажется наилучшим. Во-первых, если человек не хочет указывать свой номер телефона, то никакие проверки на корректность не помогут. Он просто введет несуществующий или чужой номер. Во-вторых, посетители сайта не любят когда их загоняют в определенные рамки. Поэтому рекомендую использовать регулярное выражение следующего типа:

    В правиле указываем что первый и последний знак должен быть обязательно цифрой — «d» , а в середине разрешаем использовать знаки скобок, пробел и знак дефиса — «[d() -]<4,14>» , от 4 до 14 символов. Так как скобки и пробел являются зарезервированными элементами регулярных выражений, перед ними ставим обратный слеш.

    Для любителей жестких шаблонов приведу пример проверки номера вида 8 (999) 123-45-64

    Исходный код примера: html и javascript

    Это полный код тестовой странички, на которой я использовал форму и js скрипты для отладки правил из этой статьи. Можете скопировать его и протестировать у себя на компьютере.

    Это демонстрационная версия. В случае с формой обратной связи нам следует проводить проверку полей не при нажатии на кнопку, а при попытке отправить её:

    Ссылка на основную публикацию
    Adblock
    detector