Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: replaceAll, regular expression, global flag, string replacement

Как работают регулярные выражения в методе replaceAll()?

Проверяет понимание работы регулярных выражений в методе replaceAll() для глобальной замены подстрок.

Короткий ответ

Метод replaceAll() заменяет все вхождения шаблона в строке. Если передать строку, она будет экранирована автоматически. Если передать регулярное выражение, оно должно содержать флаг g (global), иначе будет ошибка. Это удобно для массовой замены без циклов.

Длинный ответ

Как работает 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 для корректной работы.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#replaceAll

#regular expression

#global flag

#string replacement

Подпишись на Java Developer в телеграм