JavaScript Регулярные выражения Введение Создание регулярных выражений Флаги (способы поиска по шаблону) Метасимволы Специальные символы Квантификаторы.

Презентация:



Advertisements
Похожие презентации
RegExp Регуля́рные выраже́ния (англ. regular expressions, сокр. RegExp, RegEx, жарг. регэ́кспы или ре́гексы) это формальный язык поиска и осуществления.
Advertisements

Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Строки в Pascal
Регулярные выражения. Регулярные выражения это один из способов поиска подстрок (соответствий) в строках. Используются для: проверки наличия соответствующей.
Переменные : имя, значение, тип. Разработал учитель информатики МБОУ СОШ 50 г. Краснодара Ракута Елизавета Григорьевна « Сперва аз да буки, а потом науки.
«Обработка строковых данных» Delphi. Тема 7:7: «Обработка строковых данных» План темы: 1. Понятие символа и строки. 2. Описание символов и строк в программе.
Лекция 2 Типы данных и переменные. Слабый контроль типов Пример: var favNumber; favNumber = 3; favNumber = "Сан-Диего";
Строковый тип данных. Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строка - последовательность из определенного количества.
Оператор ввода с клавиатуры Переменные величины. В большинстве случаев при решении задач в ходе работы программы, оператору описания необходимо менять.
Составить программу вычисления периметра равнобедренного треугольника. Задача.
СУБД 5. SQL для выборки данных. 2 SELECT Обработка элементов оператора SELECT выполняется в следующей последовательности: FROM – определяются имена используемых.
СИНТАКСИС И УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ JAVASCRIPT. Вставка скрипта. 1. В коде HTML-страницы … 2. Внешний файл.
1.Открыть новое окно редактирования для ввода программы Файл Новый. 2.Набрать текст новой программы. 3.Сохранить текст программы на диске Файл Сохранить.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Запросы к базе данных. ЗАПРОС – это команда на выполнение определенного вида манипулирования данными.
Познакомиться с основными понятиями языка Pascal 2.
Регулярные выражения Денис С. Мигинский. Происхождение регулярных выражений Регулярные выражения – язык предназначенный для синтаксического разбора текстовых.
О СНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. П ЛАН 1. Символьные и строковые величины. Операции над символьными и строковыми величинами. 2. Символьный тип.
Символы и строки. Процедуры и функции работы со строками.
Транксрипт:

JavaScript Регулярные выражения Введение Создание регулярных выражений Флаги (способы поиска по шаблону) Метасимволы Специальные символы Квантификаторы повторения Позиционные проверки Управляющие символы Методы и свойства объекта RegExp() Статические свойства объекта RegExp() Строковые методы для работы с регулярными выражениями

Введение Регулярные выражения это формальный язык поиска и осуществления манипуляций с подстроками в тексте, задающий шаблон (образец) из символов и метасимволов и задающий правило поиска

Создание регулярных выражений // Вариант первый var regTemplate = new RegExp(/шаблон/флаги); // Вариант второй var regTemplate = new RegExp('шаблон', ' флаги '); С помощью объекта new RegExp() var regTemplate = /шаблон/флаги; С помощью регулярного выражения для поиска (pattern)

Флаги (способы поиска по шаблону) g (global) глобальный поиск соответствия по всей строке; i (ignoreСase) нечувствительность к регистру; m (multiline) многострочный поиск var regTemplate = /be/; var str = 'To be, or not to be '; //Найдёт только первое вхождение строки var regTemplate = /be/g; var str = 'To be, or not to be '; //Найдёт все вхождения строки Глобальный поиск: var regTemplate = /be/; var str = 'TO BE OR NOT TO BE'; //Не найдет вхождений, если строка находится в другом регистре var regTemplate = /be/i; var str = 'TO BE OR NOT TO BE'; //Найдёт все вхождение строки, не смотря на регистр Нечувствительность к регистру:

Флаги (способы поиска по шаблону) var regTemplate = /^[\w\, ]+not[\w\, ]+$/; var str = 'To be, \r\n or not to be '; // Не найдёт совпадений var regTemplate = /^[\w\, ]+not[\w\, ]+$/m; var str = 'To be, \r\n or not to be '; //Найдёт все вхождения строки Многострочный поиск: Опция многострочного поиска позволяет проводить сопоставление с образцом строкового выражения, состоящего из нескольких строк текста, соединенных символами разрыва строки. По умолчанию, сопоставление с образцом прекращается, если найден символ разрыва строки Многострочный поиск работает только если в шаблоне указаны начало строки «^» и конец строки «$»

Метасимволы Сокращённый оператор Значение [abc]Любой из перечисленных в скобках символов, либо диапазона символов [^abc]Любой символ, кроме перечисленных в скобках, либо диапазона символов.Любой символ, кроме символа перехода на новую строку ^Соответствует позиции в начале строки, в которой выполняется поиск $Соответствует позиции в конце строки, в которой выполняется поиск | Указывает на возможность выбора одного из двух или нескольких элементов () Отмечает начало и конец части выражения. Части выражения можно сохранять для последующего использования Если в проверяемой строке имеются символы, схожие с метасимволами, то их необходимо экранировать символом «/». Например, для строки «100$» следует создать выражение /^100\$$/

Специальные символы Сокращённый оператор Значение \d Цифра. Эквивалентно [0-9] \DЛюбой символ, кроме цифр. Эквивалентно [^0-9] \w Цифра, буква (латинский алфавит) или знак подчеркивания. Эквивалентно [0-9a-zA-Z_] \W Любой символ, кроме цифр, букв (латинский алфавит) и знака подчеркивания. Эквивалентно [^0-9a-zA-Z_] \s Пробельный символ (пробел, табуляция, перевод строки и т. п.) \SЛюбой символ, кроме пробельных \b Граница слова, т. е. позиция между словом и пробелом или переводом строки \BЛюбая позиция кроме границы слова [\b]Символ возврата на одну позицию \xhh Символ с кодом hh (2 шестнадцатиричных цифры) \uhhhh Символ с кодом hh (4 шестнадцатиричных цифры)

Квантификаторы повторения Параметр Значение {m, n}Повторение предшествующего элемента от m до n раз {m, }Повторение предшествующего элемента m или более раз {m}{m}Повторение предшествующего элемента m раз * Соответствует предыдущему символу или части выражения, повторяющимся ноль или более раз. Аналогично параметру {0,} + Соответствует предыдущему символу или части выражения, повторяющимся один или более раз. Аналогично параметру {1,} ? Соответствует предыдущему символу или части выражения, повторяющимся ноль или один раз. Аналогично параметру {0,1}

Позиционные проверки Параметр Значение (?:m) Находит соответствие, но не запоминает найденное m(?=n) Поиск с «заглядыванием вперёд». Находит m только если за m следует n m(?!n) Поиск с «заглядыванием вперёд». Находит m только если за m не следует n

Управляющие символы Символ Значение \n\n Переход на новую строку \r Возврат каретки \f Конец страницы \t\t Горизонтальная табуляция \v\v Вертикальная табуляция

Методы и свойства объекта RegExp() var regTemplate = /^be$/; alert(regTemplate.test('be')); //Выведет true, т. к. строка соответствует шаблону alert(regTemplate.test('not be')); //Выведет false, т. к. строка НЕ соответствует шаблону test() вывод строкового представления объекта var regTemplate = /^be$/; alert(regTemplate. toString()); //Выведет строку регулярного выражения «^be$» toString() Проверка соответствия строки данному выражению exec() возвращает объект результатов совпадений или «null», если ничего не найдено Методы объекта RegExp() var regTemplate = /(be).+(be)/g; var str = 'To be or not to be'; //Не найдет вхождений, если строка находится в другом регистре var result = regTemplate.exec(str); // result[0] = 'be, or not to be'; строка соответствия // result[1] = 'be'; строка соответствия // result[2] = 'be'; строка соответствия // result[index] = 3; позиция первого вхождения строки соответствия // result[lastIndex] = 19; позиция последнего вхождения строки соответствия (только в IE)

Методы и свойства объекта RegExp() Свойство Значение global Логическое значение, указывающее, установлен ли флаг глобальности ignoreCase Логическое значение, указывающее, установлен ли флаг чувствительности к регистру multiline Логическое значение, указывающее, установлен ли флаг многострочности lastIndex Индекс последнего совпадения source Строковая форма регулярного выражения Свойства объекта RegExp()

Статические свойства объекта RegExp() Свойство Альтерн. форма Значение $$Экранированный знак доллара $1, $2 … $9 Строки, соответствующие первым девяти подвыражениям в скобках для последнего найденного соответствия шаблону index Значение индекса первого символа в строке, с которого начинается соответствие шаблону. Не является частью стандарта ECMA input$_ Строка, используемая для сравнения с данным шаблоном по умолчанию lastIndex Целочисленное значение, указывающее позицию в строке, с которой будет начинаться следующий поиск lastMatch$& Строка с соответствующим шаблону текстом, найденному в результате последней операции сравнения lastParen$+ Строка, соответствующая последнему заключённому в скобки подвыражению для последнего найденного соответствия шаблону leftContext $` Строка с текстом, размещённым слева от последнего найденного соответствия шаблону rightContext $'$' Строка с текстом, размещённым справа от последнего найденного соответствия шаблону

Строковые методы для работы с регулярными выражениями Свойство Значение search() Возвращает индекс символа, с которого начинается первое обнаружение соответствия шаблону split() Разделяет строку на массив подстрок replace() Возвращает строку, полученную в результате замены текста match() Возвращает массив результатов сравнения

Задание Запросите у пользователя мобильный номер телефона: o Номер должен начинаться с «+7» или «8»; o Следующие три цифры могут быть в скобках, могут или без; o Остальные группы цифр могут не разделяться, или разделяться знаком «-» или пробелом. Напр. xxx-xx-xx, xxx xx xx или xxxxxxx; o Если номер введён верно выведите его, если нет снова запросите ввести его, отобразив в вызове неправильное значение. Выведенный номер должен начинаться с «+7» и логически разделяться пробелами, напр