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


Регулярное выражение (англ.: Regular Expression, часто сокращается как regex, regexp или RE в коде) использует одну строку для описания и сопоставления ряда строковых шаблонов поиска, соответствующих определённому синтаксическому правилу.

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


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

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

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

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

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

Чтобы узнать больше о регулярных выражениях, посетите:Регулярные выражения — учебное пособие.

Синтаксис

/regex body/modifiers (optional)

Модификаторы необязательны.


Пример:

var patt = /example/i

Анализ примера:

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

example— этотело регулярного выражения(используется для поиска).

i— этомодификатор(поиск не учитывает регистр).


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

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

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

replace() Этот метод используется для замены одних строк другими в строке или для замены подстроки, соответствующей регулярному выражению.


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

Пример

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

var str = "Посетите Example!"; var n = str.search(/Example/i);

Результат вывода:

6

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


Метод search() с использованием строки

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

Пример

Поиск подстроки "Example" в строке:

var str = "Посетите Example!"; var n = str.search("Example");

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


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

Пример

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

var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Example");

Результат вывода:

Посетите Example!

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

Метод replace() с использованием строки

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

var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","Пример");

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


Вы заметили?


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


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

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

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


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

Квадратные скобки используются для поиска символов в определённом диапазоне:

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

Метасимволы — это символы, имеющие особое значение:

Метасимвол Описание
\d Найти цифру.
\s Найти пробельный символ.
\b Совпадение с границей слова.
\uxxxx Найти символ Unicode, заданный шестнадцатеричным числом xxxx.

Квантификаторы:

Квантификатор Описание
n+ Совпадает с любой строкой, содержащей как минимум одинn.
n* Совпадает с любой строкой, содержащей ноль или болееn.
n? Совпадает с любой строкой, содержащей ноль или одинn.


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

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


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

Метод test() — это метод регулярного выражения.

Метод test() используется для проверки, соответствует ли строка шаблону. Если строка содержит совпадающий текст, он возвращает true; в противном случае он возвращает false.

Следующий пример используется для поиска символа "e" в строке:

Пример

var patt = /e/;
patt.test("The best things in life are free!");

Строка содержит "e", поэтому вывод этого примера:

истина

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

Можно не задавать переменную регулярного выражения; две приведённые выше строки кода можно объединить в одну строку:

/e/.test("The best things in life are free!")


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

Метод exec() — это метод регулярного выражения.

Метод exec() используется для поиска совпадений регулярного выражения в строке.

Эта функция возвращает массив, содержащий результаты совпадения. Если совпадение не найдено, возвращаемое значение — null.

Следующий пример используется для поиска буквы "e" в строке:

Пример 1

/e/.exec("The best things in life are free!");

Строка содержит "e", поэтому вывод этого примера:

e

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

Другие примеры

  • JS для определения, состоит ли входная строка из цифр, букв и знаков подчёркивания

  • JS для определения, состоит ли входная строка только из букв

  • JS для определения, состоит ли входная строка только из цифр


Полное справочное руководство по RegExp

Для полного справочника по объекту RegExp обратитесь к нашемуруководству по JavaScript RegExp。

В этом справочном руководстве описаны все методы и свойства объекта RegExp.

Другие расширения