JavaScript Регулярні вирази
Регулярний вираз - це послідовність символів, що утворює шаблон (патерн) пошуку.
Шаблон (патерн) пошуку можна використовувати для текстового пошуку та операцій заміни тексту.
Що таке регулярні вирази?
Регулярний вираз - це послідовність символів, що утворюють шаблон пошуку (патерн пошуку).
Коли ви шукаєте дані в тексті, ви можете використовувати цей шаблон пошуку, щоб описати те, що ви шукаєте.
Регулярний вираз може бути окремим символом або більш складним шаблоном.
Регулярні вирази можна використовувати для виконання всіх типів операцій текстового пошуку та заміни тексту.
Синтаксис
/pattern/modifiers;
Приклад
/w3schools/i;
Пояснення прикладу:
/w3schools/i є регулярним виразом.
w3schools - це шаблон (патерн) (для використання в пошуку).
i - це модифікатор (змінює пошук без урахування регістру).
Використання рядкових методів
В 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");
Результат в 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":
Приклад
const pattern = /e/;
pattern.test("Все найкраще в житті - безкоштовне!");
Оскільки в рядку є літера "e", виведення наведеного вище коду буде:
true
Вам не потрібно спочатку розміщувати регулярний вираз у змінну. Два наведених вище рядка можна скоротити до одного:
/e/.test("Все найкраще в житті - безкоштовне!");
Використання exec()
Метод exec()
це метод виразу RegExp.
Він шукає рядок для вказаного шаблону і повертає знайдений текст як об’єкт.
Якщо збігів не знайдено, повертається пустий (null) об’єкт.
В наступному прикладі виконується пошук в рядку символа "e":
Повний довідник RegExp
Для більш детального ознайомлення з регулярними виразами, відвідайте Повний довідник JavaScript RegExp на нашому сайті W3Schools українською.
Довідник містить описи та приклади всіх властивостей та методів регулярних виразів.