Как заменить все совпадения в строке на JS

Про метод, что заменяет подстроку в строке (replace), знает каждый, кому приходилось работать со строками. Данный метод заменяет первое найденное совпадение, на то, что ему указано вторым параметром:
var n = '2:19:11:174:55:10:11:98';
n = n.replace('1', 'X');
console.log(n);

Тут мы заменяем первую единицу на X, на выходе получим: 2:X9:11:174:55:10:11:98. С этим всё понятно, замена первой единицы прошла успешно, остальные единицы остались не тронутыми.

А, что делать, если появилась необходимость заменить все единицы в строке на X? На помощь придет регулярное выражение, с флагом g, что будет производить замену стоко раз, сколько совпадений находится в строке. Само выражение для нашей задачи выглядит так: /1/g. В метод завернуть так n.replace(/1/g, 'X'). Ну, и весь код:
var n = '2:19:11:174:55:10:11:98';
n = n.replace(/1/g, 'X');
console.log(n);

Результат выполнения кода: 2:X9:XX:X74:55:X0:XX:98. Проверяем, убеждаемся, что все единицы были заменены на X.

Есть ещё один вариант заменить сразу все совпадения в строке. Использовать метод replaceAll. Данная функция находит и заменяет все совпадения в строке, на то, что указано вторым параметром. Метод, так же, может работать и с регулярными выражениями. Мы делаем так:
var n = '2:19:11:174:55:10:11:98';
n = n.replaceAll('1', 'X');
console.log(n);

И получаем: 2:X9:XX:X74:55:X0:XX:98. А значит всё правильно!
Автор:  23:29 16.03.2024