JavaScript Regex: подробное руководство по замене всех вхождений

Регулярные выражения (regex) — это мощные инструменты, используемые для сопоставления с образцом и манипулирования строками в JavaScript. Одним из распространенных вариантов использования является замена всех вхождений шаблона в строку. В этой статье мы рассмотрим несколько способов добиться этого на примерах кода JavaScript.

Метод 1: String.prototype.replace() с глобальным модификатором Regex
Метод replace()в JavaScript может принимать регулярное выражение с глобальным модификатором (/g), чтобы заменить все вхождения шаблона в строке. Вот пример:

const str = 'Hello, hello, hello!';
const replacedStr = str.replace(/hello/g, 'hi');
console.log(replacedStr); // Output: 'Hi, hi, hi!'

Метод 2: использование конструктора RegExp с глобальным флагом
Вы также можете создать объект RegExp с помощью конструктора RegExpи передать глобальный флаг (/g) ) в качестве аргумента. Этот метод позволяет использовать переменный шаблон. Вот пример:

const str = 'Hello, hello, hello!';
const pattern = 'hello';
const regex = new RegExp(pattern, 'g');
const replacedStr = str.replace(regex, 'hi');
console.log(replacedStr); // Output: 'Hi, hi, hi!'

Метод 3: разделение и объединение строки
Альтернативный подход — разделить строку на массив, используя шаблон в качестве разделителя, а затем соединить элементы массива с желаемой заменой. Вот пример:

const str = 'Hello, hello, hello!';
const pattern = /hello/g;
const replacedStr = str.split(pattern).join('hi');
console.log(replacedStr); // Output: 'Hi, hi, hi!'

Метод 4: использование метода replaceAll() (ES2021+)
Начиная с ECMAScript 2021, в JavaScript появился метод replaceAll(), специально предназначенный для замены всех вхождений шаблона в строку. Этот метод упрощает процесс. Вот пример:

const str = 'Hello, hello, hello!';
const replacedStr = str.replaceAll('hello', 'hi');
console.log(replacedStr); // Output: 'Hi, hi, hi!'

В этой статье мы рассмотрели несколько методов замены всех вхождений шаблона в строке с помощью регулярного выражения JavaScript. Мы рассмотрели метод replace()с глобальным модификатором, использование конструктора RegExp, разделение и объединение строки, а также метод replaceAll(), представленный в ECMAScript 2021. Эти методы обеспечить гибкость и эффективность при манипулировании строками с помощью регулярных выражений в JavaScript.

Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования. Поэкспериментируйте с различными шаблонами и значениями замены, чтобы добиться желаемых результатов в своих проектах JavaScript.