JS метод String.match()
Загальний опис
Метод String.prototype.match()
використовується для пошуку в рядку з використанням регулярного виразу. Він повертає масив, що містить всі знайдені співпадіння, або null
, якщо співпадінь не знайдено. Цей метод є важливим інструментом у роботі з текстовими даними, особливо коли потрібно здійснити складний пошук або екстракцію певних шаблонів з рядка.
Щоб використовувати match()
, потрібно викликати його на рядку, передавши як аргумент регулярний вираз. Наприклад:
let text = "Коти і собаки - друзі людини.";
let pattern = /[а-яіїєґ]+/gi;
console.log(text.match(pattern)); // поверне ["Коти", "і", "собаки", "друзі", "людини"]
У цьому прикладі match()
шукає всі слова, що складаються з букв українського алфавіту у рядку text
та повертає масив цих слів.
Важливою особливістю match()
є його поведінка з різними прапорцями регулярних виразів. Наприклад, прапорець g
(глобальний пошук) визначає, чи буде метод шукати всі співпадіння або тільки перше. Без прапорця g
, match()
повертає додаткову інформацію про знайдене співпадіння, таку як індекс та вхідний рядок:
let firstWordPattern = /[а-яіїєґ]+/i;
console.log(text.match(firstWordPattern)); // поверне ["Коти", index: 0, input: "Коти і собаки - друзі людини.", groups: undefined]
Метод match()
є незамінним при роботі з текстом у JavaScript, особливо коли необхідно виконати складні пошукові операції або аналіз текстових даних. Використання цього методу дозволяє легко знаходити, перевіряти та екстрактувати інформацію з рядків, зробивши роботу з текстовими даними більш гнучкою та ефективною.
Нотатка: | Метод |
Порада: | Використовуйте |
Нотатка: | Регулярні вирази в JavaScript можуть містити прапорці, які змінюють поведінку пошуку. Наприклад, прапорець "g" (глобальний пошук) дозволяє знайти всі збіги в рядку, а не лише перший. Важливо розуміти ці прапорці для ефективного використання |
Синтаксис
match(regexp)
Параметри
- *
regexp
Регулярний вираз, з яким буде порівнюватися рядок. Це може бути об'єкт регулярного виразу або будь-який об'єкт, що має метод
Symbol.match
. Використання цього аргументу дозволяє виконувати складний пошук у рядку, включаючи пошук за шаблонами та групами захоплення.
Return
array
Повертає масив, вміст якого залежить від наявності або відсутності глобального прапорця (
g
) в регулярному виразі, абоnull
, якщо співпадіння не знайдені. Якщо використовується прапорецьg
, метод повертає усі результати, що відповідають регулярному виразу, але без урахування груп захоплення. Якщо прапорецьg
не використовується, повертається лише перше повне співпадіння та його пов'язані групи захоплення. У цьому випадкуmatch()
повертає такий же результат, якRegExp.prototype.exec()
, а саме масив з додатковими властивостями.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі користувачі можуть ввести будь-який текст та регулярний вираз. Після натискання кнопки "Знайти збіги", вони побачать всі збіги у введеному тексті, якщо вони є, або повідомлення про те, що збігів немає, або помилку, якщо регулярний вираз неправильний. Це дасть користувачам наочне уявлення про роботу match()
у JavaScript.
У цьому прикладі використовується String.prototype.match()
для знаходження всіх слів у рядку. Метод match()
приймає регулярний вираз і повертає масив з усіма знайденими співпадіннями. Це простий спосіб вилучити окремі слова з тексту.
// Створюємо рядок для пошуку
let sentence = "JavaScript - це цікаво і корисно!";
// Використовуємо регулярний вираз для знаходження слів
let words = sentence.match(/\b\w+\b/g);
console.log(words); // Виводить: ["JavaScript", "це", "цікаво", "і", "корисно"]
У цьому складнішому прикладі використовується match()
для вилучення дати у певному форматі з рядка. Цей метод є особливо корисним для розбору рядків за певним шаблоном, наприклад, при роботі з лог-файлами або обробці користувацького вводу.
// Створюємо рядок з датою
let logEntry = "Помилка: 404; Дата: 13/05/2023; Статус: не знайдено";
// Використовуємо регулярний вираз для знаходження дати
let datePattern = /Дата: (\d{2}\/\d{2}\/\d{4})/;
let dateMatch = logEntry.match(datePattern);
console.log(dateMatch[1]); // Виводить: "13/05/2023"