--- title: String.prototype.replaceAll() slug: Web/JavaScript/Reference/Global_Objects/String/replaceAll translation_of: Web/JavaScript/Reference/Global_Objects/String/replaceAll ---
Метод replaceAll() возвращает новую строку со всеми совпадениями pattern , который меняется на replacement. pattern может быть строкой или регулярным выражением, и replacement может быть строкой или функция возвращающая каждое совпадение.
Исходная строка остаётся без изменений.
Исходник этого интерактивного примера находится в GitHub репозитории. Если бы вы хотели внести свой вклад в создание интерактивных примеров для проекта, пожалуйста клонируйте ссылку https://github.com/mdn/interactive-examples и отправьте нам pull request.
const newStr = str.replaceAll(regexp|substr, newSubstr|function)
Когда вы используете `regexp` вы должны установить флаг глобального поиска ("g"), иначе вернётся ошибка TypeError: "replaceAll must be called with a global RegExp".
regexp (pattern)newSubstr или значении возвращённое указанной функцией function. A RegExp без глобального флага поиска ("g") вернёт ошибку TypeError: "replaceAll must be called with a global RegExp".substrnewSubstr. Обрабатывается как буквенная строка, не интерпретируется как регулярное выражение.newSubstr (replacement)regexp или substr параметрах. Поддерживается ряд специальных шаблонов замены; смотрите "Specifying a string as a parameter" блок ниже.function (replacement)regexp or substr. Аргументы применяемы в этой функции описываются в "Specifying a function as a parameter" блок ниже.Новая строка, в которой все совпадения замены на указанную подстроку или специальный шаблон.
Этот метод не изменяет исходную строку. Он просто возвращает новую.
Заменённая строка может включатся в следующие специальные шаблоны:
| Pattern | Inserts | 
|---|---|
| $$ | Вставляет "$". | 
| $& | Вставлять совпадения. | 
| $` | Вставляет часть строки которая находится перед совпадениями (строка соответствующая шаблону). | 
| $' | Вставляет часть строки которая следует после совпадения (строка соответствующая шаблону). | 
| $n | Где nположительное цело число меньше чем 100, вставляетnth строки указанные в скобках, частичные совпадения, при условии, что первый аргумент был {{jsxref("RegExp")}} object. Обратите внимание, что это 1-индексированный. | 
Вы можете передать функцию вторым параметром. Этом случае, функция вызывается после нахождения совпадений. Результат функции может быть использована как замещающая строка. (Внимание: Выше упомянутые специальные шаблоны замены в данном случае неприменимы.)
Функция может быть вызвана многократно для каждого заменённого совпадения, если регулярное выражение указано с глобальным флагом("g").
Функция имеет следующие аргументы:
| Possible name | Supplied value | 
|---|---|
| match | Найденная постройка. (Соответствует $&указанному выше) | 
| p1, p2, ... | nth количество строк найденных групповыми скобками указанные первым параметром в регулярном выражении. (Соответствует $1,$2, см. выше) Для примера, если/(\a+)(\b+)/, тоp1это\a+, аp2это\b+. | 
| offset | Смещение совпадающей подстроки в пределах всей исследуемой строки. (Например, если вся строка была 'abcd', а соответствующая подстрока была 'bc', то этот аргумент будет равен 1.) | 
| string | Исследуется вся цепочка. | 
(Точное количество аргументов зависит от того, является ли первый аргумент регулярным выражением — и, если да, то аргументов будет столько сколько указанно в скобках.)
'aabbcc'.replaceAll('b', '.');
// 'aa..cc'
Поиск с регулярными выражениями должен быть с ("g"). Это не работает:
'aabbcc'.replaceAll(/b/, '.'); TypeError: replaceAll must be called with a global RegExp
Это работает:
'aabbcc'.replaceAll(/b/g, '.'); "aa..cc"
| Specification | 
|---|
| {{SpecName('ESDraft', '#sec-string.prototype.replaceall', 'String.prototype.replaceAll')}} | 
{{Compat}}