diff options
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/string/replaceall/index.html')
-rw-r--r-- | files/ru/web/javascript/reference/global_objects/string/replaceall/index.html | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html b/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html new file mode 100644 index 0000000000..f938fefb64 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/string/replaceall/index.html @@ -0,0 +1,167 @@ +--- +title: String.prototype.replaceAll() +slug: Web/JavaScript/Reference/Global_Objects/String/replaceAll +translation_of: Web/JavaScript/Reference/Global_Objects/String/replaceAll +--- +<div>{{JSRef}}</div> + +<p><span class="seoSummary">Метод <strong><code>replaceAll()</code></strong> возвращает новую строку со всеми совпадениями <code>pattern</code> , который меняется на <code>replacement</code>. </span><code>pattern</code> может быть строкой или регулярным выражением, и <code>replacement</code> может быть строкой или функция возвращающая каждое совпадение.</p> + +<p>Исходная строка остается без изменений.</p> + +<div>{{EmbedInteractiveExample("pages/js/string-replaceall.html")}}</div> + +<p class="hidden">Исходник этого интерактивного примера находится в GitHub репозитории. Если бы вы хотели внести свой вклад в создание интерактивных примеров для проекта, пожалуйста клонируйте ссылку <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> и отпрвате нам pull request.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox notranslate">const newStr = <var>str</var>.replaceAll(<var>regexp</var>|<var>substr</var>, <var>newSubstr</var>|<var>function</var>) +</pre> + +<div class="blockIndicator note"> +<p>Когда вы используете `<var>regexp</var>` вы должны установить флаг глобального поиска ("g"), иначе вернется ошибка <code>TypeError</code>: "replaceAll must be called with a global RegExp".</p> +</div> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code><var>regexp</var></code> (pattern)</dt> + <dd>Регулярное выражение или буква с глобальным флагом поиска ("g"). Совпадения меняются на <code><var>newSubstr</var></code> или значени возвращенное указанной функцией <code><var>function</var></code>. A RegExp без глобального флага поиска ("g") вернет ошибку <code>TypeError</code>: "replaceAll must be called with a global RegExp".</dd> + <dt><code><var>substr</var></code></dt> + <dd>Подстрока, которая заменится <code><var>newSubstr</var></code>. Обрабатывается как буквенная строка, не интерпретируется как регулярное выражение.</dd> + <dt><code><var>newSubstr</var></code> (replacement)</dt> + <dd>Новая строка, которая заменяет найденные подстроки указанные в <code><var>regexp</var></code> или <code><var>substr</var></code> парамерах. Поддерживается ряд специальных шаблонов замены; смотрите "<a href="#Specifying_a_string_as_a_parameter">Specifying a string as a parameter</a>" блок ниже.</dd> + <dt><code><var>function</var></code> (replacement)</dt> + <dd>Функция вызванная при создании новой строки которая используется для замены совпадений указанных в <code><var>regexp</var></code> or <code><var>substr</var></code>. Аргументы применяемы в этой функции описываются в "<a href="#Specifying_a_function_as_a_parameter">Specifying a function as a parameter</a>" блок ниже.</dd> +</dl> + +<h3 id="Return_value">Return value</h3> + +<p>Новая строка, в которой все совпадения замены на уазанную подстроку или специальный шаблон.</p> + +<h2 id="Описание">Описание</h2> + +<p>Этот метод не изменяет исходную строку. Он просто возвращает новую.</p> + +<h3 id="Указание_строки_в_качестве_параметра">Указание строки в качестве параметра</h3> + +<p>Замененная строка может включатся в следующие специальные шаблоны:</p> + +<table class="standard-table"> + <thead> + <tr> + <th class="header" scope="col">Pattern</th> + <th class="header" scope="col">Inserts</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>$$</code></td> + <td>Вставляет <code>"$"</code>.</td> + </tr> + <tr> + <td><code>$&</code></td> + <td>Вставлет совпадения.</td> + </tr> + <tr> + <td><code>$`</code></td> + <td>Вставляет часть строки которая находится перед совпадениями (строка соответствующая шаблону).</td> + </tr> + <tr> + <td><code>$'</code></td> + <td>Вставляет часть строки которая следует после совпадения (строка соответствующая шаблону).</td> + </tr> + <tr> + <td><code>$<var>n</var></code></td> + <td>Где <code><var>n</var></code> положительное цело число меньше чем 100, вставляет <code><var>n</var></code>th строки указанные в скобках, частичные совпадения, при условии, что первый аргумент был {{jsxref("RegExp")}} object. Обратите внимание, что это 1-индексированный.</td> + </tr> + </tbody> +</table> + +<h3 id="Указание_функции_в_качестве_параметра">Указание функции в качестве параметра</h3> + +<p>Вы можете передать функцию вторым параметром. Вэтом случае, функция вызывается полсе нахождения совпадений. Результат функции может быть использованна как замещающая строка. (<strong>Внимание:</strong> Выше упомянутые специальные шаблоны замены в данном случае неприменимы.)</p> + +<p>Функция может быть вызвана многократно для каждого замененного совпадения, если регудярное выражение указано с глобальным влагом("g").</p> + +<p>Функция имеет следующие аргументы:</p> + +<table class="standard-table"> + <thead> + <tr> + <th class="header" scope="col">Possible name</th> + <th class="header" scope="col">Supplied value</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>match</code></td> + <td>Найденная построка. (Соответствуетt <code>$&</code> указанному выше)</td> + </tr> + <tr> + <td><code>p1, p2, ...</code></td> + <td><var>n</var>th количество строк найденых групповыми скобками указанные первым параметром в регулярном выражении. (Соответствует <code>$1</code>, <code>$2</code>, см. выше) Для примера, если <code>/(\a+)(\b+)/</code>, то <code>p1</code> это <code>\a+</code>, а <code>p2</code> это<code>\b+</code>.</td> + </tr> + <tr> + <td><code>offset</code></td> + <td>Смещение совпадающей подстроки в пределах всей исследуемой строки. (Например, если вся строка была 'abcd', а соответствующая подстрока была 'bc', то этот аргумент будет равен 1.)</td> + </tr> + <tr> + <td><code>string</code></td> + <td>Исследуется вся цепочка.</td> + </tr> + </tbody> +</table> + +<p>(Точное количество аргументов зависит от того, является ли первый аргумент регулярным выражением — и, если да, то аргументов будет столько сколько указанно в скобках.)</p> + +<h2 id="Examples">Examples</h2> + +<h3 id="Using_replaceAll">Using replaceAll</h3> + +<pre class="brush: js notranslate">'aabbcc'.replaceAll('b', '.'); +// 'aa..cc'</pre> + +<h3 id="Non-global_regex_throws">Non-global regex throws</h3> + +<p>Поиск с регулярными выражениями должен быть с ("g"). Это не работает:</p> + +<pre class="brush: js; example-bad notranslate">'aabbcc'.replaceAll(/b/, '.'); +TypeError: replaceAll must be called with a global RegExp +</pre> + +<p>Это работает:</p> + +<pre class="brush: js; example-good notranslate">'aabbcc'.replaceAll(/b/g, '.'); +"aa..cc" +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-string.prototype.replaceall', 'String.prototype.replaceAll')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("javascript.builtins.String.replaceAll")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("String.prototype.replace", "String.prototype.replace()")}}</li> + <li>{{jsxref("String.prototype.match", "String.prototype.match()")}}</li> + <li>{{jsxref("RegExp.prototype.exec", "RegExp.prototype.exec()")}}</li> + <li>{{jsxref("RegExp.prototype.test", "RegExp.prototype.test()")}}</li> +</ul> |