Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 09 2016 22:16:07
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Регулярные выражения. Примеры проверок на соответствие


Регулярные выражения. Проверка корректности контактной информации

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

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

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

Это довольно простой пример. Я не знаю точных соглашений о нумерации телефонных номеров, поэтому сформулирую свои ограничения:

  1. Номер телефона начинается символом “+” и кодом страны длиной от одного до трех цифр.

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

  3. Основной номер телефона разбивается в соответствии с маской XXX-XX-XX.

Регулярное выражение для проверки синтаксиса строки с номером телефона (проверить регулярное выражение on-line):

^\+\d{1,3}\s?\(\d{3}\)\s?\d{3}(-\d{2}){2}$

Регулярные выражения. Проверка корректности телефонного номера
Проверка корректности ввода телефонного номера с применением регулярных выражений.

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

Данная задача, в сравнении с проверкой номера телефона, сложнее на порядок. Скажу больше: регулярного выражения, учитывающего все тонкости структуры электронного адреса, скорее всего, не существует, хотя в интернете примеров огромное количество. По этой причине средствами регулярных выражений проверяют основные, наиболее важны моменты, связанные с корректностью адреса электронной почты: наличие символа "@", разделителя доменов 1-го и 2-го уровня и т.д. Таким образом, регулярные выражения в данном случае используют для рекомендательных целей, чтобы предупредить пользователя о том, что он, возможно, ошибся при вводе своего e-mail. Все встает на свои места при явной проверке существования введенного ящика. Тем не менее, в этом примере я введу следующие ограничения:

  1. Имя пользователя должно начинаться с буквы или цифры, а дальше могут идти любые символы, определяемые метасимволом \w. Допускается разбиение имени пользователя на части с использованием точки. Двух и более точек подряд не допускается.

  2. Имена доменов, разделяемые точками, должны также начинаться с символа или цифры, и далее состоять из символов, разрешенных \w.

  3. Имя домена верхнего уровня должно состоять только из букв и цифр и иметь длину от 2 до 6 символов.

Регулярное выражение для проверки e-mail (проверить регулярное выражение on-line):

^[A-Za-z0-9]+(\.\w+)*@([A-Za-z0-9]+\w*)((\.[A-Za-z0-9]+\w*))*\.([A-Za-z0-9]){2,6}$

Регулярные выражения. Проверка корректности адреса электронной почты
Проверка корректности ввода адреса электронной почты с применением регулярных выражений.

Самостоятельно: В качестве практического задания предлагаю создать шаблоны для проверки корректности серии и номера паспорта (это довольно просто). Наиболее "отчаянным" могу предложить придумать проверку корректности обычного милицейского адреса с почтовым индексом, геонимом (шоссе, проспект, улица, переулок и т.д.), номером дома, корпуса, строения и т.д. и т.п.

Читать дальше...

Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.