РуЛиб - онлайн библиотека > Автор неизвестен > Учебники и самоучители по компьютеру > Регулярные выражения для фронтендеров

Читаем онлайн «Регулярные выражения для фронтендеров»

Регулярные выражения для
фронтендеров
HTML Academy
2021-11-30
Регулярные выражения для
фронтендеров
1. Основы регулярных выражений
1.1. Основные принципы регулярных выражений
1.2. Движение паттернов и возвраты
1.3. Атрибут pattern
1.4. Методы JavaScript для работы с регулярными
выражениями
1.5. Справочник
2. Первые селекторы
2.1. Одиночный символ
2.2. Чувствительность к регистру
2.3. Наборы символов
2.4. Экранирование символов
2.5. Отрицание
2.6. Границы текста
2.7. Рисуем смайлы
2.8. Рисуем смайлы (решение)
3. Символьные селекторы
3.1. Символьные селекторы
3.2. Служебные символы
3.3. Универсальный селектор
3.4. Оцифруемся
3.5. Оцифруемся (решение)
4. Группировка, условия, сохранение состояния и обратные
ссылки
4.1. Количество повторений
4.2. Сохранение совпадения
4.3. Группировка с условием ИЛИ
4.4. Отмена сохранения
4.5. Торжество лени
4.6. Торжество лени (решение)
4.7. Тест по пройденному материалу
4.7. Тест по пройденному материалу (ответы)
5. Квантификаторы. Ограничения длины. Жадность
5.1. Что если не?
5.2. Один или много +
5.3. Ни одного или много *
5.4. Жадность
5.5. Ограничение жадности
5.6. Опишем уровень игры
5.7. Опишем уровень игры (решение)
5.8. Тест по разделу квантификаторы
5.8. Тест по разделу квантификаторы (ответы)
6.
Опережающие
Модификаторы
и
ретроспективные
6.1. Позиционные проверки
6.2. Модификаторы
6.3. Триадам да
6.4. Триадам да (решение)
7. Хозяйке на заметку
7.1. Что не вошло?
7.2. Точность регулярных выражений
7.3. Скорость выполнения
7.4. Каскады правил
7.5. Регулярные выражения в среде окружения
проверки.
7.6. Финальный тест по программе курса
7.6. Финальный тест по программе курса (ответы)
1. Основы регулярных выражений
В первом разделе мы познакомимся с основными принципами
работы регулярных выражений, основными терминами.
Разберем механизм движения паттернов и возвраты. Вспомним
об атрибуте pattern=”” в элементах форм из курса HTML.
Познакомимся с методами JavaScript для работы с регулярными
выражениями.
1.1. Основные принципы регулярных
выражений
Прежде чем мы приступим к основной теме нашего курса,
обозначим маленькое условие: здесь и далее мы будем говорить
только о строке и строковых данных. Даже если речь идет о
числах, подразумеваем, что число преобразовано в формат
строки.
Итак, регулярные выражения — это формальный язык поиска
подстроки
в
строке.
Они
поддерживаются
многими
программами: редакторами, системными утилитами, базами
данных. Но особенно хорошо они раскрывают свои
возможности в языках программирования. В рамках курса мы
будем рассматривать регулярные выражения применительно к
языку JavaScript.
«
Историческая справка: регулярные выражения пришли к нам
из теории автоматов, которая является частью дискретной
математики.
Чтобы обозначить основную причину использования регулярных
выражений, поставим себе простую задачу:
Найти и заменить в строке Быстрее всего мы догоним ее на
машине местоимение ее на его .
Самым логичным способом было бы использовать прямую
замену:
'Быстрее всего мы догоним ее на машине'.replace('ее', 'его')
В нашем случае мы получим ожидаемо неверный результат: ее
является частью слова Быстрее , а .replace() заменит первое
вхождение подстроки.
Поэтому при решении задачи мы должны делать проверку на
наличие символа, стоящего перед окончанием ее , и только в
случае его отсутствия делать замену.
Давайте усложним задачу ещё несколькими условиями, чтобы
окончательно убедиться в «беспомощности» нашего решения:
— мы не знаем, в каком регистре написаны слова, например:
ее , Ее , ЕЕ ;
— также не знаем, используется ли буква ё .
В этом случае прямая замена уже точно «не подходит». Нам
нужна полноценная функция, которая проверит все условия.
«
«Не подходит» неслучайно взято в кавычки, ведь пока мы с
вами ничего не знаем о возможностях регулярных выражений
и не можем их применить в связке с .replace()
Где применять?
Как только появляется задача, в которой вы заранее не знаете
содержимое строки и не можете однозначно сформулировать
формат — с большой долей вероятности можно говорить о
необходимости использования регулярных выражений.
Обозначим основной круг задач, которые решают регулярные
выражения:
— Поиск или замена подстроки в строке с «плавающими»
(неизвестными) данными. Самая распространенная
задача — найти в тексте ссылки и адреса электронной
почты и сделать их кликабельными.
— Валидация данных формы и ограничение ввода.
Например, валидация номера телефона, электронной
почты, данных паспорта гражданина РФ и других данных.
— Получение части строки или формирование новых
структур данных из строк с «плавающими»
разделителями. Найти количество вхождений ключевых
слов в тексте без учета падежных окончаний, составить
из них массив с данными для дальнейшего