--- title: String.prototype.replaceAll() slug: Web/JavaScript/Reference/Global_Objects/String/replaceAll tags: - JavaScript - String - regex - Регулярний вираз - метод - рядок translation_of: Web/JavaScript/Reference/Global_Objects/String/replaceAll ---
{{JSRef}}

Метод replaceAll() повертає новий рядок, в якому усі збіги з шаблоном замінені вказаним параметром заміни. Шаблон може бути рядком або {{jsxref("RegExp","регулярним виразом")}}, а заміна може бути рядком або функцією, що викликатиметься для кожного збігу.

Початковий рядок лишається незміненим.

{{EmbedInteractiveExample("pages/js/string-replaceall.html")}}

Синтаксис

const newStr = str.replaceAll(regexp|substr, newSubstr|function)

Параметри

regexp (шаблон)
Об'єкт або літерал {{jsxref("RegExp","регулярного виразу")}} з глобальним прапором. Збіги замінюються на newSubstr або значення, яке повертає вказана функція function. Регулярний вираз без глобального ("g") прапора викине помилку TypeError: "replaceAll must be called with a global RegExp".
substr
{{jsxref("String", "Рядок")}}, який потрібно замінити на newSubstr. Він вважається звичайним рядком та не інтерпретується як регулярний вираз.
newSubstr (заміна)
{{jsxref("String","Рядок")}}, який замінює підрядок, вказаний параметром regexp або substr. Підтримується ряд спеціальних шаблонів заміни; дивіться нижче розділ "Використання рядка в якості параметра".
function (заміна)
Функція, що буде викликана для створення нового підрядка, який замінить збіги з наданим параметром regexp або substr. Аргументи, що передаються в цю функцію, описані нижче в розділі "Використання функції в якості параметра".

Значення, що повертається

Новий рядок, в якому усі збіги з шаблоном замінені.

Опис

Цей метод не змінює об'єкт {{jsxref("String")}}, що його викликав. Він просто повертає новий рядок.

Використання рядка в якості параметра

Рядок заміни може містити наступні спеціальні шаблони заміни:

Шаблон Вставляє
$$ Вставляє "$".
$& Вставляє знайдений підрядок.
$` Вставляє частину рядка, що передує знайденому підрядку.
$' Вставляє частину рядка, що розташована за знайденим підрядком.
$n Де n є додатним цілим числом, меншим за 100, вставляє n-й підрядок збігів у дужках, за умови, що першим аргументом був об'єкт {{jsxref("RegExp")}}. Зауважте, що вони індексуються з 1.

Використання функції в якості параметра

Ви можете вказати функцію в якості другого параметра. У цьому випадку функція буде викликана після знайдення збігу. Результат функції (повернене значення) буде використаний в якості рядка заміни. (Заувага: Вищезазначені спеціальні шаблони заміни не застосовуються у цьому випадку.)

Зауважте, що функція буде викликатись багаторазово, для кожного повного збігу, що буде замінений, якщо регулярний вираз у першому параметрі є глобальним.

Функція має наступні аргументи:

Можливе ім'я Надане значення
match Знайдений підрядок. (Відповідає вищенаведеному $&)
p1, p2, ... n-й рядок, знайдений захопленою групою у дужках, за умови, що першим аргументом методу replace() був об'єкт {{jsxref("RegExp")}}. (Відповідає вищенаведеним $1, $2 і т.д.) Наприклад, якщо був наданий аргумент /(\a+)(\b+)/, то p1 є збігом з \a+, а p2 - збігом з \b+.
offset Зсув знайденого підрядка всередині рядка, що перевіряється. (Наприклад, якби цілим рядком був 'абвг', а знайденим підрядком 'бв', то цей аргумент дорівнював би 1.)
string Весь рядок, що перевіряється.

(Точна кількість аргументів залежить від того, чи є перший аргумент об'єктом {{jsxref("RegExp")}} і, якщо є, то скільки збігів, заключених у дужки, він визначає.)

Приклади

Використання replaceAll

'ааббвв'.replaceAll('б', '.');
// 'аа..вв'

Неглобальний регулярний вираз викидає виняток

Якщо використовується регулярний вираз в якості значення пошуку, він повинен бути глобальним. Це не працюватиме:

'ааббвв'.replaceAll(/б/, '.');
TypeError: replaceAll must be called with a global RegExp

Так працюватиме:

'ааббвв'.replaceAll(/б/g, '.');
"аа..вв"

Специфікації

Специфікація
{{SpecName('ESDraft', '#sec-string.prototype.replaceall', 'String.prototype.replaceAll')}}

Сумісність з веб-переглядачами

{{Compat("javascript.builtins.String.replaceAll")}}

Див. також