Регулярные выражения JavaScript
Регулярное выражение — это последовательность символов, формирующая шаблон поиска.
Шаблон поиска можно использовать для текстового поиска и операций замены текста.
Что такое регулярное выражение?
Регулярное выражение — это последовательность символов, формирующая шаблон поиска .
Когда вы ищете данные в тексте, вы можете использовать этот шаблон поиска, чтобы описать то, что вы ищете.
Регулярное выражение может состоять из одного символа или более сложного шаблона.
Регулярные выражения можно использовать для выполнения всех типов текстового поиска и операций замены текста .
Синтаксис
/pattern/modifiers;
Пример
/w3schools/i;
Объяснение примера:
/w3schools/i — это регулярное выражение.
w3schools — это шаблон (для использования в поиске).
я является модификатором (изменяет поиск, чтобы он был нечувствительным к регистру).
Использование строковых методов
В JavaScript регулярные выражения часто используются с двумя строковыми методами : search()
и replace()
.
Метод search()
использует выражение для поиска совпадения и возвращает позицию совпадения.
Метод replace()
возвращает модифицированную строку, в которой заменяется шаблон.
Использование String search() со строкой
Метод search()
ищет в строке указанное значение и возвращает позицию совпадения:
Пример
Используйте строку для поиска «W3schools» в строке:
let text = "Visit W3Schools!";
let n = text.search("W3Schools");
Результат в n будет:
6
Использование String search() с регулярным выражением
Пример
Используйте регулярное выражение для поиска «w3schools» в строке без учета регистра:
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
Результат в n будет:
6
Использование String replace() со строкой
Метод replace()
заменяет указанное значение другим значением в строке:
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
Используйте String replace() с регулярным выражением
Пример
Используйте регулярное выражение без учета регистра, чтобы заменить Microsoft на W3Schools в строке:
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");
Результат в рез будет:
Visit W3Schools!
Ты заметил?
Аргументы регулярного выражения (вместо строковых аргументов) можно использовать в приведенных выше методах.
Регулярные выражения могут сделать ваш поиск более эффективным (например, без учета регистра).
Модификаторы регулярных выражений
Модификаторы можно использовать для выполнения более глобального поиска без учета регистра:
Modifier | Description | Try it |
---|---|---|
i | Perform case-insensitive matching | |
g | Perform a global match (find all matches rather than stopping after the first match) | |
m | Perform multiline matching |
Шаблоны регулярных выражений
Скобки используются для поиска диапазона символов:
Expression | Description | Try it |
---|---|---|
[abc] | Find any of the characters between the brackets | |
[0-9] | Find any of the digits between the brackets | |
(x|y) | Find any of the alternatives separated with | |
Метасимволы — это символы со специальным значением:
Metacharacter | Description | Try it |
---|---|---|
\d | Find a digit | |
\s | Find a whitespace character | |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
|
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
Квантификаторы определяют количества:
Quantifier | Description | Try it |
---|---|---|
n+ | Matches any string that contains at least one n | |
n* | Matches any string that contains zero or more occurrences of n | |
n? | Matches any string that contains zero or one occurrences of n |
Использование объекта регулярного выражения
В JavaScript объект RegExp — это объект регулярного выражения с предопределенными свойствами и методами.
Использование теста()
Метод test()
представляет собой метод выражения RegExp.
Он ищет в строке шаблон и возвращает true или false в зависимости от результата.
В следующем примере выполняется поиск в строке символа «e»:
Пример
const pattern = /e/;
pattern.test("The best things in life are free!");
Поскольку в строке есть буква «e», вывод приведенного выше кода будет таким:
true
Вам не нужно сначала помещать регулярное выражение в переменную. Две строки выше можно сократить до одной:
/e/.test("The best things in life are free!");
Использование exec()
Метод exec()
представляет собой метод выражения RegExp.
Он ищет в строке указанный шаблон и возвращает найденный текст в виде объекта.
Если совпадений не найдено, возвращается пустой (нулевой) объект.
В следующем примере выполняется поиск в строке символа «e»:
Пример
/e/.exec("The best things in life are free!");
Полный справочник регулярных выражений
Полную справку см. в нашем Полном справочнике по регулярным выражениям JavaScript .
Справочник содержит описания и примеры всех свойств и методов RegExp.