String.prototype.replaceAll()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since авгÑÑÑ 2020 г..
ÐеÑод replaceAll() возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²ÑÑ ÑÑÑÐ¾ÐºÑ Ñо вÑеми ÑовпадениÑми pattern , коÑоÑÑй менÑеÑÑÑ Ð½Ð° replacement. pattern Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑокой или ÑегÑлÑÑнÑм вÑÑажением, и replacement Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑокой или ÑÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑÐ°Ñ ÐºÐ°Ð¶Ð´Ð¾Ðµ Ñовпадение.
ÐÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑока оÑÑаÑÑÑÑ Ð±ÐµÐ· изменений.
ÐнÑеÑакÑивнÑй пÑимеÑ
const paragraph = "I think Ruth's dog is cuter than your dog!";
console.log(paragraph.replaceAll("dog", "monkey"));
// Expected output: "I think Ruth's monkey is cuter than your monkey!"
// Global flag required when calling replaceAll with regex
const regex = /Dog/gi;
console.log(paragraph.replaceAll(regex, "ferret"));
// Expected output: "I think Ruth's ferret is cuter than your ferret!"
Syntax
const newStr = str.replaceAll(regexp|substr, newSubstr|function)
ÐÑимеÑание:
Ðогда Ð²Ñ Ð¸ÑполÑзÑеÑе regexp Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑÑÑановиÑÑ Ñлаг глобалÑного поиÑка ("g"), инаÑе веÑнÑÑÑÑ Ð¾Ñибка TypeError: "replaceAll must be called with a global RegExp".
Parameters
regexp(pattern)-
РегÑлÑÑное вÑÑажение или бÑква Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑм Ñлагом поиÑка ("g"). Ð¡Ð¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑÑÑÑÑ Ð½Ð°
newSubstrили знаÑении возвÑаÑÑнное Ñказанной ÑÑнкÑиейfunction. A RegExp без глобалÑного Ñлага поиÑка ("g") веÑнÑÑ Ð¾ÑибкÑTypeError: "replaceAll must be called with a global RegExp". substr-
ÐодÑÑÑока, коÑоÑÐ°Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑÑ
newSubstr. ÐбÑабаÑÑваеÑÑÑ ÐºÐ°Ðº бÑÐºÐ²ÐµÐ½Ð½Ð°Ñ ÑÑÑока, не инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº ÑегÑлÑÑное вÑÑажение. newSubstr(replacement)-
ÐÐ¾Ð²Ð°Ñ ÑÑÑока, коÑоÑÐ°Ñ Ð·Ð°Ð¼ÐµÐ½ÑÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð½Ñе подÑÑÑоки ÑказаннÑе в
regexpилиsubstrпаÑамеÑÑÐ°Ñ . ÐоддеÑживаеÑÑÑ ÑÑд ÑпеÑиалÑнÑÑ Ñаблонов заменÑ; ÑмоÑÑиÑе "Specifying a string as a parameter" блок ниже. function(replacement)-
ФÑнкÑÐ¸Ñ Ð²ÑÐ·Ð²Ð°Ð½Ð½Ð°Ñ Ð¿Ñи Ñоздании новой ÑÑÑоки коÑоÑÐ°Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ñовпадений ÑказаннÑÑ Ð²
regexporsubstr. ÐÑгÑменÑÑ Ð¿ÑименÑÐµÐ¼Ñ Ð² ÑÑой ÑÑнкÑии опиÑÑваÑÑÑÑ Ð² "Specifying a function as a parameter" блок ниже.
Return value
ÐÐ¾Ð²Ð°Ñ ÑÑÑока, в коÑоÑой вÑе ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ð½Ð° ÑказаннÑÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ Ð¸Ð»Ð¸ ÑпеÑиалÑнÑй Ñаблон.
ÐпиÑание
ÐÑÐ¾Ñ Ð¼ÐµÑод не изменÑÐµÑ Ð¸ÑÑ Ð¾Ð´Ð½ÑÑ ÑÑÑокÑ. Ðн пÑоÑÑо возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²ÑÑ.
Указание ÑÑÑоки в каÑеÑÑве паÑамеÑÑа
ÐаменÑÐ½Ð½Ð°Ñ ÑÑÑока Ð¼Ð¾Ð¶ÐµÑ Ð²ÐºÐ»ÑÑаÑÑÑ Ð² ÑледÑÑÑие ÑпеÑиалÑнÑе ÑаблонÑ:
| Pattern | Inserts |
|---|---|
$$ |
ÐÑÑавлÑÐµÑ "$". |
$& |
ÐÑÑавлÑÑÑ ÑовпадениÑ. |
$` |
ÐÑÑавлÑÐµÑ ÑаÑÑÑ ÑÑÑоки коÑоÑÐ°Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿ÐµÑед ÑовпадениÑми (ÑÑÑока ÑооÑвеÑÑÑвÑÑÑÐ°Ñ ÑаблонÑ). |
$' |
ÐÑÑавлÑÐµÑ ÑаÑÑÑ ÑÑÑоки коÑоÑÐ°Ñ ÑледÑÐµÑ Ð¿Ð¾Ñле ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ (ÑÑÑока ÑооÑвеÑÑÑвÑÑÑÐ°Ñ ÑаблонÑ). |
$n |
Ðде n положиÑелÑное Ñело ÑиÑло менÑÑе Ñем 100, вÑÑавлÑÐµÑ nth ÑÑÑоки ÑказаннÑе в ÑкобкаÑ
, ÑаÑÑиÑнÑе ÑовпадениÑ, пÑи ÑÑловии, ÑÑо пеÑвÑй аÑгÑÐ¼ÐµÐ½Ñ Ð±Ñл RegExp object. ÐбÑаÑиÑе внимание, ÑÑо ÑÑо 1-индекÑиÑованнÑй. |
Указание ÑÑнкÑии в каÑеÑÑве паÑамеÑÑа
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ ÑÑнкÑÐ¸Ñ Ð²ÑоÑÑм паÑамеÑÑом. ÐÑом ÑлÑÑае, ÑÑнкÑÐ¸Ñ Ð²ÑзÑваеÑÑÑ Ð¿Ð¾Ñле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñовпадений. РезÑлÑÑÐ°Ñ ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзована как замеÑаÑÑÐ°Ñ ÑÑÑока. (Ðнимание: ÐÑÑе ÑпомÑнÑÑÑе ÑпеÑиалÑнÑе ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ð² данном ÑлÑÑае непÑименимÑ.)
ФÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзвана многокÑаÑно Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ заменÑнного ÑовпадениÑ, еÑли ÑегÑлÑÑное вÑÑажение Ñказано Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑм Ñлагом("g").
ФÑнкÑÐ¸Ñ Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑие аÑгÑменÑÑ:
| Possible name | Supplied value |
|---|---|
match |
ÐÐ°Ð¹Ð´ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾ÑÑÑойка. (СооÑвеÑÑÑвÑÐµÑ $& ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ Ð²ÑÑе) |
p1, p2, ... |
_n_th колиÑеÑÑво ÑÑÑок найденнÑÑ
гÑÑпповÑми Ñкобками ÑказаннÑе пеÑвÑм паÑамеÑÑом в ÑегÑлÑÑном вÑÑажении. (СооÑвеÑÑÑвÑÐµÑ $1, $2, Ñм. вÑÑе) ÐÐ»Ñ Ð¿ÑимеÑа, еÑли /(\a+)(\b+)/, Ñо p1 ÑÑо \a+, а p2 ÑÑо \b+. |
offset |
СмеÑение ÑовпадаÑÑей подÑÑÑоки в пÑÐµÐ´ÐµÐ»Ð°Ñ Ð²Ñей иÑÑледÑемой ÑÑÑоки. (ÐапÑимеÑ, еÑли вÑÑ ÑÑÑока бÑла 'abcd', а ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð¿Ð¾Ð´ÑÑÑока бÑла 'bc', Ñо ÑÑÐ¾Ñ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ð±ÑÐ´ÐµÑ Ñавен 1.) |
string |
ÐÑÑледÑеÑÑÑ Ð²ÑÑ ÑепоÑка. |
(ТоÑное колиÑеÑÑво аÑгÑменÑов завиÑÐ¸Ñ Ð¾Ñ Ñого, ÑвлÑеÑÑÑ Ð»Ð¸ пеÑвÑй аÑгÑÐ¼ÐµÐ½Ñ ÑегÑлÑÑнÑм вÑÑажением â и, еÑли да, Ñо аÑгÑменÑов бÑÐ´ÐµÑ ÑÑолÑко ÑколÑко Ñказанно в ÑÐºÐ¾Ð±ÐºÐ°Ñ .)
Examples
>Using replaceAll
"aabbcc".replaceAll("b", ".");
// 'aa..cc'
Non-global regex throws
ÐоиÑк Ñ ÑегÑлÑÑнÑми вÑÑажениÑми должен бÑÑÑ Ñ ("g"). ÐÑо не ÑабоÑаеÑ:
'aabbcc'.replaceAll(/b/, '.');
TypeError: replaceAll must be called with a global RegExp
ÐÑо ÑабоÑаеÑ:
"aabbcc".replaceAll(/b/g, ".");
("aa..cc");
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.replaceall> |