САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ

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



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

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


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

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

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

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

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

Синтаксис

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

Пример

var patt = /schoolsw3/i;

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

/schoolsw3/i  является регулярным выражением.

schoolsw3  является паттерном (для использования в поиске).

i  является модификатором (изменяет поиск без учета регистра).


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

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

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

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


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

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

Пример

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

var str = "Визит Schoolsw3!";
var n = str.search("Schoolsw3");
Редактор кода »

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

Пример

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

var str = "Визит Schoolsw3";
var n = str.search(/schoolsw3/i);

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

6
Редактор кода »

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

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

var str = "Визит Microsoft!";
var res = str.replace("Microsoft", "Schoolsw3");
Редактор кода »

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

Пример

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

var str = "Визит Microsoft!";
var res = str.replace(/microsoft/i, "Schoolsw3");

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

Визит Schoolsw3!
Редактор кода »

Ты Заметил?

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


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

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

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

Паттерны регулярного выражения

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

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

Метасимволы являются символами, имеющими специальное значение:

Метасимволы Описание Редактор кода
\d Найти цифру Редактор кода »
\s Найти символ пробела Редактор кода »
\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("Лучшие вещи в жизни бесплатны!");
Редактор кода »

Полный справочник по регулярным выражениям

Для подробной информации перейдите на наш Полный JavaScript справочник по регулярным выражениям.

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