--- 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 ---
Метод replaceAll()
повертає новий рядок, в якому усі збіги з шаблоном замінені вказаним параметром заміни. Шаблон може бути рядком або {{jsxref("RegExp","регулярним виразом")}}, а заміна може бути рядком або функцією, що викликатиметься для кожного збігу.
Початковий рядок лишається незміненим.
const newStr = str.replaceAll(regexp|substr, newSubstr|function)
regexp
(шаблон)newSubstr
або значення, яке повертає вказана функція function
. Регулярний вираз без глобального ("g") прапора викине помилку TypeError
: "replaceAll must be called with a global RegExp".substr
newSubstr
. Він вважається звичайним рядком та не інтерпретується як регулярний вираз.newSubstr
(заміна)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(/б/, '.'); TypeError: replaceAll must be called with a global RegExp
Так працюватиме:
'ааббвв'.replaceAll(/б/g, '.'); "аа..вв"
Специфікація |
---|
{{SpecName('ESDraft', '#sec-string.prototype.replaceall', 'String.prototype.replaceAll')}} |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("javascript.builtins.String.replaceAll")}}