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"
