aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/string/substring/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/string/substring/index.html')
-rw-r--r--files/ru/web/javascript/reference/global_objects/string/substring/index.html194
1 files changed, 194 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/string/substring/index.html b/files/ru/web/javascript/reference/global_objects/string/substring/index.html
new file mode 100644
index 0000000000..9efb4f84a8
--- /dev/null
+++ b/files/ru/web/javascript/reference/global_objects/string/substring/index.html
@@ -0,0 +1,194 @@
+---
+title: String.prototype.substring()
+slug: Web/JavaScript/Reference/Global_Objects/String/substring
+tags:
+ - JavaScript
+ - Method
+ - Prototype
+ - Reference
+ - Référence(2)
+ - String
+translation_of: Web/JavaScript/Reference/Global_Objects/String/substring
+---
+<div>{{JSRef("Global_Objects", "String")}}</div>
+
+<h2 id="Summary" name="Summary">Сводка</h2>
+
+<p>Метод <strong><code>substring()</code></strong> возвращает подстроку строки между двумя индексами, или от одного индекса и до конца строки.</p>
+
+<h2 id="Syntax" name="Syntax">Синтаксис</h2>
+
+<pre class="syntaxbox"><code><var>str</var>.substring(<var>indexA</var>[, <var>indexB</var>])</code></pre>
+
+<h3 id="Parameters" name="Parameters">Параметры</h3>
+
+<dl>
+ <dt><code>indexA</code></dt>
+ <dd>Целое число от <code>0</code> до длины строки, определяющее смещение в строке первого символа, который будет включён в результирующую подстроку.</dd>
+ <dt><code>indexB</code></dt>
+ <dd>Необязательный параметр. Целое число от <code>0</code> до длины строки, определяющее смещение в строке первого символа, который <strong>не будет</strong> включён в результирующую подстроку.</dd>
+</dl>
+
+<h2 id="Description" name="Description">Описание</h2>
+
+<p>Метод <code>substring()</code> извлекает символы, начиная с индекса <code>indexA</code> до, но не включая, индекс <code>indexB</code>. В частности:</p>
+
+<ul>
+ <li>Если аргумент <code>indexA</code> равен аргументу <code>indexB</code>, метод <code>substring()</code> вернёт пустую строку.</li>
+ <li>Если аргумент <code>indexB</code> опущен, метод <code>substring()</code> извлечёт символы до конца строки.</li>
+ <li>Если любой из аргументов меньше, либо равен нулю или равен {{jsxref("Global_Objects/NaN", "NaN")}}, он будет трактоваться как равный 0.</li>
+ <li>Если любой из аргументов больше, чем <code>stringName.length</code>, он будет трактоваться как равный <code>stringName.length</code>.</li>
+</ul>
+
+<p>Если аргумент <code>indexA</code> будет больше аргумента <code>indexB</code>, то метод <code>substring()</code> сработает так, как если бы аргументы были поменяны местами; например, <code><em>str</em>.substring(1, 0) == <em>str</em>.substring(0, 1)</code>.</p>
+
+<h2 id="Examples" name="Examples">Примеры</h2>
+
+<h3 id="Example:_Using_substring" name="Example:_Using_substring">Пример: использование метода <code>substring()</code></h3>
+
+<p>В следующем примере метод <code>substring()</code> используется для отображения символов из строки <code>'Mozilla'</code>:</p>
+
+<pre class="brush: js">var anyString = 'Mozilla';
+
+// Отобразит 'Moz'
+console.log(anyString.substring(0, 3));
+console.log(anyString.substring(3, 0));
+
+// Отобразит 'lla'
+console.log(anyString.substring(4, 7));
+console.log(anyString.substring(7, 4));
+
+// Отобразит 'Mozill'
+console.log(anyString.substring(0, 6));
+
+// Отобразит 'Mozilla'
+console.log(anyString.substring(0, 7));
+console.log(anyString.substring(0, 10));
+</pre>
+
+<h3 id="Example:_Using_substring_with_length_property" name="Example:_Using_substring_with_length_property">Пример: использование метода <code>substring()</code> вместе со свойством <code>length</code></h3>
+
+<p>Следующий пример использует метод <code>substring()</code> и свойство {{jsxref("String.length", "length")}} для извлечения последних символов из строки. Этот метод может оказаться легче для запоминания, особенно если учесть, что вам не нужно знать начальный и конечный индексы, как это было в примере выше.</p>
+
+<pre class="brush: js">// Отобразит 'illa' - последние 4 символа
+var anyString = 'Mozilla';
+var anyString4 = anyString.substring(anyString.length - 4);
+console.log(anyString4);
+
+// Отобразит 'zilla' - последние 5 символов
+var anyString = 'Mozilla';
+var anyString5 = anyString.substring(anyString.length - 5);
+console.log(anyString5);
+</pre>
+
+<h3 id="Example:_Replacing_a_substring_within_a_string" name="Example:_Replacing_a_substring_within_a_string">Пример: замена подстроки в строке</h3>
+
+<p>Следующий пример демонстрирует замену подстроки в строке. Он заменит как отдельные символы, так и целые подстроки. Вызов функции в конце примера изменит строку <code>'Дивный новый мир'</code> на строку <code>'Дивный новый веб'</code>.</p>
+
+<pre class="brush: js">// Заменяет oldS на newS в строке fullS
+function replaceString(oldS, newS, fullS) {
+ for (var i = 0; i &lt; fullS.length; ++i) {
+ if (fullS.substring(i, i + oldS.length) == oldS) {
+ fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length);
+ }
+ }
+ return fullS;
+}
+
+replaceString('мир', 'веб', 'Дивный новый мир');
+</pre>
+
+<p>Обратите внимание, что функция может скатиться в беcконечный цикл, если строка <code>oldS</code> сама является подстрокой для <code>newS</code> — например, если вы попытаетесь заменить слово «мир» на слово «другоймир». Лучше использоваться следующий метод для замены строк:</p>
+
+<pre class="brush: js">function replaceString(oldS, newS, fullS) {
+ return fullS.split(oldS).join(newS);
+}
+</pre>
+
+<p>Код выше следует рассматривать всего лишь как пример работы с подстроками. Если вам нужно заменить подстроки, скорее всего вы захотите использовать метод {{jsxref("String.prototype.replace()")}}.</p>
+
+<h2 id="Specifications" name="Specifications">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарии</th>
+ </tr>
+ <tr>
+ <td>ECMAScript 1-е издание.</td>
+ <td>Стандарт</td>
+ <td>Реализована в JavaScript 1.0.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.5.4.15', 'String.prototype.substring')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-string.prototype.substring', 'String.prototype.substring')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Возможность</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Возможность</th>
+ <th>Android</th>
+ <th>Chrome для Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">Смотрите также</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.substr()")}}</li>
+ <li>{{jsxref("String.prototype.slice()")}}</li>
+</ul>