Использование регулярных выражений в JavaScript
Лабораторная работа №5 JavaScript. Валидация данных, регулярные выражения, отправка почты.
1. Цель работы... 2 2. Методические указания по организации самостоятельной работы... 2 2.1 Классы проверки данных (валидаторы). 2 2.2 Регулярные выражения.. 2 2.3 Использование регулярных выражений в JavaScript. 5 2.4 Проверка формы отправки почты... 6 3. Порядок выполнения работы и индивидуальные задания.. 9 3.1 Содержание отчета.. 9 3.2 Индивидуальные задания.. 9 Лабораторная работа №5 JavaScript. Валидация данных, регулярные выражения, отправка почты. Цель работы Целью данной работы: научиться писать валидаторы, регулярные выражения c помощью JavaScript, а также код отправки почты. Методические указания по организации самостоятельной работы
В лабораторной работе будут рассмотрены следующие вопросы: Валидация данных Регулярные выражения Отправка почтовых сообщений Классы проверки данных (валидаторы) Данные из форм обычно записываются в базы данных, и тип информации в них должен соответствовать типу и длине данных в полях таблиц баз данных. Кроме того, иногда нужно вводить взаимосвязанные данные, например, пароль во время регистрации нужно вводить 2 раза и он в обоих полях должен совпадать. Некоторые хакеры пытаются вводить в формы программные коды, чтобы взломать вашу систему. Бдительность и еще раз бдительность, как говорил товарищ... не помню кто. А если пользователь ввел неверные данные случайно, сервер выдаст непонятное сообщение об ошибке, и ценный клиент уйдет с нашего сайта на другой. Прежде чем работать с данными, нужно убедиться, что: · в определенное поле введена информация; · текст в поле "Адрес" имеет форму электронного адреса (с @ и с точкой);
· дата рождения разумна, например, пользователь не сообщил о себе, что ему 300 лет или 1 годик; · пароль достаточно сложен и не совпадает с логином. Проверка может происходить и на стороне клиента, и на сервере. При валидации на стороне клиента в страницу встраивается код на Javascript. Если данные в форме не проходят проверку, страница просто не будет отправлена на сервер. Таким образом мы избежим лишнего трафика и не будем загружать сервер. С другой стороны, валидация на стороне сервера более надежна. Javascript-код хакеры могут легко посмотреть и отправить неправильные данные, которые пройдут эту проверку. Наконец, Javascript можно просто выключить в настройках браузера. При валидации на стороне сервера данные проверяются программой на полноценном языке. Ее код пользователю неизвестен. В результате проверки генерируется новая страница с сообщениями об ошибках. Самая разумная стратегия — применять комбинацию этих методов. Предварительная проверка у клиента защитит от опечаток, а серьезная проверка на сервере — от злонамеренного взлома. Регулярные выражения Регулярные выражения — система поиска текстовых фрагментов в электронных документах, основанная на специальной системе записи образцов для поиска. Образец, задающий правило поиска, называется "шаблоном". Применение регулярных выражений принципиально преобразило технологии электронной обработки текстов. С помощью регулярных выражений можно задавать структуру искомого шаблона и его позицию внутри строки (например, в начале или в конце строки, на границе или не на границе слова). При описании структуры шаблона используются:
Для того, чтобы задать положение искомого фрагмента внутри строки, можно использовать один из следующих операторов:
Кроме того, язык регулярных выражений предоставляет набор квантификаторов, позволяющих указать число повторений шаблона:
Имеются и более простые квантификаторы:
Для задания внутри шаблона группы символом можно использовать следующие операторы:
Для группировки отдельных частей шаблона можно использовать следующие операторы:
Если шаблон поиска включает специальные (как правило неотображаемые) символы, для их описания можно использовать следующие обозначения:
Квантификаторам в регулярных выражениях соответствует максимально длинная строка из возможных (т.е. квантификаторы являются "жадными"). Это может приводить к некоторым проблемам. Например, шаблон (<.*>) описывающий на первый взгляд теги HTML на самом деле будет выделять более крупные фрагменты в документе.
Например, строка вида <p> <font color='blue'> <i>Регулярные выражения<i> </font> - удобный инструмент для поиска в строках </p>формально соответствует указанному выше шаблону Для решения данной проблемы можно использовать два подхода.
Например, по шаблону (<.*?>) будут найдены все теги из рассмотренной строки. Таким образом, получаются следующие "нежадные" модификации квантфикаторов:
Следует, однако, иметь в виду, что использование "ленивых" квантификаторов может привести к ситуации, когда выражению соответствует слишком короткая, в частности, пустая строка. Использование регулярных выражений в JavaScript При поиске по тексту можно использовать шаблон, описывающий подстроку. В JavaScript такой шаблон может быть описан с помощью объекта RegExp. В простейшем случае такой шаблон описывает отдельный символ, однако имеет смысл его использовать для регулярных выражений. Следующий ниже код описывает RegExp объект с именем pttn, содержащий регулярное выражение, описывающее целое десятичное число: var pattn = new RegExp("/[0-9]+/");Объект RegExp имеет 3 встроенных метода: test(), exec() и compile().
Результат: true
Результат: 38Если необходимо найти все соответствия, то при вызове конструктора RegExp следует указать дополнительный параметр "g", указывающий на необходимость глобального поиска: var pattn = new RegExp("[0-9]+", "g");do{result = pattn.exec("1 попугай, 2 попугая,…, 38 попугаев");document.write(" " + result);}while (result!= null)Пример 2.1. Результат: 1 2 38 null
Пример 2.2. Результат: 3;8
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|