Регулярные выражения являются мощным инструментом для работы с текстовыми данными в JavaScript. Они позволяют выполнять сложные операции поиска, замены и извлечения информации из строк. В этом руководстве мы рассмотрим основные методы объекта String
, которые поддерживают работу с регулярными выражениями.
Основные методы String с поддержкой регулярных выражений
1. Метод match()
Метод match()
ищет соответствие между строкой и регулярным выражением. Если соответствие найдено, он возвращает массив совпавших фрагментов. Если соответствия нет, возвращается null
.
Пример использования:
const str = "Привет, мир!"; const regex = /мир/; const result = str.match(regex); console.log(result); // ["мир"]
2. Метод replace()
Метод replace()
заменяет в строке все или первые вхождения шаблона, заданного регулярным выражением, на указанную замену.
Пример использования:
const str = "Привет, мир!"; const regex = /мир/; const replacement = "друзья"; const newStr = str.replace(regex, replacement); console.log(newStr); // Привет, друзья!
3. Метод split()
Метод split()
разбивает строку на массив подстрок, используя регулярное выражение в качестве разделителя.
Пример использования:
const str = "Привет, мир!"; const regex = /\s+/; // Разделитель - одно или более пробельных символов const parts = str.split(regex); console.log(parts); // ["Привет,", "мир!"]
4. Метод search()
Метод search()
находит индекс первого вхождения регулярного выражения в строке. Если соответствие не найдено, возвращается -1
.
Пример использования:
const str = "Привет, мир!"; const regex = /мир/; const index = str.search(regex); console.log(index); // 7
5. Метод exec()
Метод exec()
выполняет поиск в строке с использованием регулярного выражения и возвращает объект с информацией о найденном совпадении. Если соответствие не найдено, возвращается null
.
Пример использования:
const str = "Привет, мир!"; const regex = /мир/; const match = regex.exec(str); console.log(match); // ["мир", index: 7, input: "Привет, мир!", groups: undefined]
Флаги регулярных выражений
Регулярные выражения в JavaScript могут включать различные флаги, которые изменяют поведение поиска:
g
(global): Глобальный поиск, т.е. находит все соответствия в строке.i
(ignore case): Игнорирует регистр при поиске.m
(multiline): Включает многострочный режим, позволяя символам^
и$
соответствовать началу и концу каждой строки в тексте.
Пример использования флагов:
const str = "Привет, МИР!"; const regex = /мир/gi; // Глобальный поиск без учета регистра const matches = str.match(regex); console.log(matches); // ["МИР"]
Пример полного кода
Рассмотрим пример, объединяющий несколько методов для демонстрации работы с регулярными выражениями:
const text = "Привет, мир! Как дела? Привет, друг!"; // Найдем все вхождения слова "Привет" const greetingRegex = /Привет/g; const greetings = text.match(greetingRegex); console.log("Найденные приветствия:", greetings); // ["Привет", "Привет"] // Заменим все вхождения слова "Привет" на "Здравствуйте" const replacedText = text.replace(greetingRegex, "Здравствуйте"); console.log("Измененный текст:", replacedText); // Здравствуйте, мир! Как дела? Здравствуйте, друг! // Разобьем текст на части по знакам препинания const punctuationRegex = /[\.,!\?]/; const parts = replacedText.split(punctuationRegex); console.log("Разбитый текст:", parts); // ["Здравствуйте мир", " Как дела", " Здравствуйте друг", ""]
Заключение
Регулярные выражения в сочетании с методами объекта String
в JavaScript открывают широкие возможности для обработки текстовых данных. Методы match()
, replace()
, split()
, search()
и exec()
позволяют эффективно искать, извлекать и изменять информацию в строках. Флаги регулярных выражений добавляют гибкости в настройке поиска.