Одной из распространенных задач при работе с JavaScript является замена всех вхождений определенной подстроки в строке. Возьмем для примера следующую строку:
let s = "Привет, мир! Привет, Javascript! Привет, мир!";
Предположим, что необходимо заменить все вхождения слова «Привет» на слово «Пока». Интуитивно кажется, что это можно сделать с помощью метода replace()
следующим образом:
s = s.replace('Привет', 'Пока');
Однако, это приведет к тому, что изменится только первое вхождение слова «Привет»:
"Пока, мир! Привет, Javascript! Привет, мир!";
Такое поведение объясняется тем, что по умолчанию метод replace()
в JavaScript заменяет только первое вхождение подстроки.
Для замены всех вхождений подстроки необходимо использовать глобальный флаг g
вместе с регулярным выражением. Вот как это выглядит на практике:
s = s.replace(/Привет/g, 'Пока');
В результате всех вхождений слова «Привет» будут заменены на «Пока»:
"Пока, мир! Пока, Javascript! Пока, мир!";
Таким образом, для замены всех вхождений подстроки в JavaScript используется метод replace()
вместе с регулярным выражением и глобальным флагом g
.
Добавить комментарий