Проверяет понимание работы регулярных выражений в методе replaceAll() для глобальной замены подстрок.
Метод replaceAll() в JavaScript позволяет заменить все совпадения шаблона в строке на указанную подстроку. В отличие от replace(), который заменяет только первое совпадение, replaceAll() обрабатывает все вхождения.
Если первым аргументом передать строку, она будет интерпретирована как литерал, а не регулярное выражение. Специальные символы (например, точка или звёздочка) не будут иметь особого значения. Если же передать регулярное выражение, оно обязательно должно содержать флаг g (global), иначе будет выброшено исключение TypeError.
const text = 'Hello world, hello universe';
// Замена строкой (без регулярного выражения)
const result1 = text.replaceAll('hello', 'hi');
console.log(result1); // 'Hello world, hi universe'
// Замена регулярным выражением с флагом g
const result2 = text.replaceAll(/hello/gi, 'hi');
console.log(result2); // 'hi world, hi universe'
// Ошибка: без флага g
// text.replaceAll(/hello/); // TypeError: replaceAll must be called with a global RegExpМетод полезен для очистки текста, замены шаблонов в пользовательском вводе, форматирования строк или удаления лишних символов. Он упрощает код, избавляя от необходимости использовать циклы или рекурсивные вызовы replace().
Вывод: Используйте replaceAll() с регулярными выражениями, когда нужно заменить все вхождения сложного шаблона, и всегда добавляйте флаг g для корректной работы.