JavaScript Регулярные выражения
Регулярное выражение (англ.: Regular Expression, часто сокращается как regex, regexp или RE в коде) использует одну строку для описания и сопоставления ряда строковых шаблонов поиска, соответствующих определённому синтаксическому правилу.
Шаблоны поиска можно использовать для поиска и замены текста.
Что такое регулярное выражение?
Регулярное выражение — это шаблон поиска, состоящий из последовательности символов.
Когда вы ищете данные в тексте, вы можете использовать шаблон поиска, чтобы описать то, что вы ищете.
Регулярное выражение может быть простым символом или более сложным шаблоном.
Регулярные выражения можно использовать во всех операциях поиска и замены текста.
Чтобы узнать больше о регулярных выражениях, посетите:Регулярные выражения — учебное пособие.
Синтаксис
/regex body/modifiers (optional)
Модификаторы необязательны.
Пример:
Анализ примера:
/example/i— это регулярное выражение.
example— этотело регулярного выражения(используется для поиска).
i— этомодификатор(поиск не учитывает регистр).
Использование строковых методов
В JavaScript регулярные выражения обычно используются с двумя строковыми методами: search() и replace().
search() Этот метод используется для поиска заданной подстроки в строке или для поиска подстроки, соответствующей регулярному выражению, и возвращает начальную позицию подстроки.
replace() Этот метод используется для замены одних строк другими в строке или для замены подстроки, соответствующей регулярному выражению.
Метод search() с использованием регулярного выражения
Пример
Используйте регулярное выражение для поиска строки "Example" без учёта регистра:
Результат вывода:
Попробуйте сами »
Метод search() с использованием строки
Метод search может использовать строку в качестве аргумента. Строковый аргумент будет преобразован в регулярное выражение:
Пример
Поиск подстроки "Example" в строке:
Попробуйте сами »
Метод replace() с использованием регулярного выражения
Пример
Используйте регулярное выражение без учета регистра, чтобы заменить Microsoft на Example в строке:
Результат вывода:
Попробуйте сами »
Метод replace() с использованием строки
Метод replace() принимает строку в качестве аргумента:
Попробуйте сами »
Вы заметили?
![]() |
В вышеуказанных методах можно использовать аргументы регулярных выражений (вместо строковых аргументов). Регулярные выражения делают функцию поиска более мощной (например, поиск без учёта регистра в примере). |
|---|
Модификаторы регулярных выражений
МодификаторыМожно использовать для глобального поиска без учёта регистра:
| Модификатор | Описание |
|---|---|
| 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" в строке:
Пример
patt.test("The best things in life are free!");
Строка содержит "e", поэтому вывод этого примера:
Попробуйте сами »
Можно не задавать переменную регулярного выражения; две приведённые выше строки кода можно объединить в одну строку:
Использование exec()
Метод exec() — это метод регулярного выражения.
Метод exec() используется для поиска совпадений регулярного выражения в строке.
Эта функция возвращает массив, содержащий результаты совпадения. Если совпадение не найдено, возвращаемое значение — null.
Следующий пример используется для поиска буквы "e" в строке:
Пример 1
Строка содержит "e", поэтому вывод этого примера:
Попробуйте сами »
Другие примеры
JS для определения, состоит ли входная строка из цифр, букв и знаков подчёркивания
JS для определения, состоит ли входная строка только из букв
JS для определения, состоит ли входная строка только из цифр
Полное справочное руководство по RegExp
Для полного справочника по объекту RegExp обратитесь к нашемуруководству по JavaScript RegExp。
В этом справочном руководстве описаны все методы и свойства объекта RegExp.
Другие расширения