ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Введение JS Установка JS Вывод JS Объявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строки JS Числа JS Методы числа JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл While JS Прерывание JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Подъём JS Строгий режим JS Ключевое слово this JS Ключевое слово Let JS Ключевое слово Const JS Функции стрелок JS Классы JS Отладка JS Гид по стилю JS Лучшие практики JS Ошибки JS Производительность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS JSON

JS Формы

JS Формы Формы API

JS Объекты

Определения объектов Свойства объекта Методы объекта Доступ к объектам Конструкторы объектов Прототипы объектов Объект ECMAScript 5

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Объектная модель браузера BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Броузер JS Упражнения JS Викторина JS Сертификат

JS Справочники

JavaScript Объекты HTML DOM Объекты

JavaScript. Уроки для начинающих

JavaScript Регулярные выражения


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

Шаблон поиска можно использовать для операций поиска текста и замены текста.


Па́ттерн (англ. pattern «образец, шаблон; форма, модель; схема, диаграмма») — схема-образ, действующая как посредствующее представление, или чувственное понятие, благодаря которому в режиме одновременности восприятия и мышления выявляются закономерности, как они существуют в природе и обществе. (из Википедии)


Что такое регулярное выражение?

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

Когда вы ищете данные в тексте, вы можете использовать этот шаблон поиска, чтобы описать то, что вы ищете.

Регулярное выражение может быть одним символом или более сложным шаблоном (паттерном).

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

Синтаксис

/паттерн/модификаторы;

Пример

var patt = /w3schools/i;

Объяснение примера:

/w3schools/i  - это регулярное выражение.

w3schools  - это шаблон (паттерн для использования в поиске).

i  - это модификатор (модифицирует поиск, чтобы быть нечувствительным к регистру).


Использование строковых (string) методов

В JavaScript регулярные выражения часто используются с двумя строковыми методами: search() и replace().

Метод search() использует выражение для поиска совпадения и возвращает позицию совпадения.

Метод replace() возвращает измененную строку, в которой шаблон заменяется.


Использование String search() со строкой

Метод search() ищет в строке указанное значение и возвращает позицию совпадения:

Пример

Используйте строку для поиска "W3schools" в строке:

var str = "Visit W3Schools!";
var n = str.search("W3Schools");
Попробуйте сами »

Использование String search() с регулярным выражением

Пример

Используйте регулярное выражение для поиска "w3schools" в строке без учета регистра:

var str = "Visit W3Schools";
var n = str.search(/w3schools/i);

Результат в n будет:

6
Попробуйте сами »

Использование String replace() со строкой

Метод replace() заменяет указанное значение другим значением в строке:

var str = "Visit Microsoft!";
var res = str.replace("Microsoft", "W3Schools");
Попробуйте сами »

Использование String replace() с регулярным выражением

Пример

Используйте регулярное выражение без учета регистра для замены Microsoft на W3Schools в строке:

var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "W3Schools");

Результат в res будет:

Visit W3Schools!
Попробуйте сами »

Вы заметили?

Аргументы регулярных выражений (вместо строковых аргументов) могут быть использованы в методах выше.
Регулярные выражения могут сделать ваш поиск намного более мощным (например, без учета регистра).


Модификаторы регулярных выражений

Модификаторы можно использовать для выполнения глобальных поисков без учета регистра:

Модификатор Описание Попробуй это
i Выполнить сопоставление без учета регистра Попробуй это »
g Выполнить глобальное совпадение (найти все совпадения, а не останавливаться после первого совпадения) Попробуй это »
m Выполнить многострочное сопоставление Попробуй это »

Шаблоны регулярных выражений

Скобки используются для поиска диапазона символов:

Выражение Описание Попробуй это
[abc] Найдите любой из символов в скобках Попробуй это »
[0-9] Найдите любую из цифр в скобках Попробуй это »
(x|y) Найдите любую из альтернатив, разделенных | Попробуй это »

Метасимволы - это символы с особым значением:

Метасимволы Описание Попробуй это
\d Найти цифру Попробуй это »
\s Найти пробел Попробуй это »
\b Найти совпадение в начале слова, подобного этому: \bWORD, или в конце слова, подобного этому: WORD\b Попробуй это »
Попробуй это »
\uxxxx Найти символ Unicode, указанный шестнадцатеричным числом xxxx Попробуй это »

Квантификаторы определяют количества:

Количественная оценка Описание Попробуй это
n+ Соответствует любой строке, которая содержит хотя бы один n Попробуй это »
n* Соответствует любой строке, которая содержит ноль или более вхождений n Попробуй это »
n? Соответствует любой строке, которая содержит ноль или одно вхождение n Попробуй это »

Использование объекта RegExp

В JavaScript объект RegExp является объектом регулярного выражения с предопределенными свойствами и методами.


Использование метода test()

Метод test() является методом выражения RegExp.

Он ищет строку для шаблона и возвращает true или false, в зависимости от результата.

В следующем примере выполняется поиск строки для символа "e":

Пример

var patt = /e/;
patt.test("Все лучшее в жизни бесплатно!");

Так как в строке есть "e", вывод кода выше будет:

true
Попробуйте сами »

Вам не нужно сначала помещать регулярное выражение в переменную. Две строки выше могут быть сокращены до одной:

/e/.test("Все лучшее в жизни бесплатно!");

Использование метода exec()

Метод exec() является методом выражения RegExp.

Он ищет строку для указанного шаблона и возвращает найденный текст как объект.

Если совпадений не найдено, возвращается пустой объект (null).

В следующем примере выполняется поиск строки для символа "e":

Пример 1

/e/.exec("Все лучшее в жизни бесплатно!");
Попробуйте сами »

Полный справочник RegExp

Для более полного ознакомления, перейдите на Полный JavaScript Справочник RegExp.

Справочник содержит описания и примеры всех свойств и методов RegExp.