aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/string/substr/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/string/substr/index.html')
-rw-r--r--files/ru/web/javascript/reference/global_objects/string/substr/index.html116
1 files changed, 116 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/string/substr/index.html b/files/ru/web/javascript/reference/global_objects/string/substr/index.html
new file mode 100644
index 0000000000..cfc0191ea7
--- /dev/null
+++ b/files/ru/web/javascript/reference/global_objects/string/substr/index.html
@@ -0,0 +1,116 @@
+---
+title: String.prototype.substr()
+slug: Web/JavaScript/Reference/Global_Objects/String/substr
+tags:
+ - Deprecated
+ - JavaScript
+ - Method
+ - Prototype
+ - Reference
+ - String
+translation_of: Web/JavaScript/Reference/Global_Objects/String/substr
+---
+<div>
+<div>{{JSRef}}</div>
+
+<div></div>
+
+<div class="warning">Внимание: так как <code>String.prototype.substr(…)</code> не полностью упразднена (а лишь "удалена из стандартов по вебу"), она считается <strong>унаследованной функцией</strong>, использование которой лучше избегать там, где это возможно. Она не является частью ядра языка JavaScript и может быть удалена в будущем. Если есть возможность, используйте метод <code><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/String/substring">substring()</a></code>.</div>
+
+<p>Метод <strong><code>substr()</code></strong> возвращает указанное количество символов из строки, начиная с указанной позиции.</p>
+{{EmbedInteractiveExample("pages/js/string-substr.html")}}
+
+
+
+<h2 id="Syntax" name="Syntax">Синтаксис</h2>
+
+<pre class="syntaxbox"><code><var>str</var>.substr(<var>start</var>[, <var>length</var>])</code></pre>
+
+<h3 id="Parameters" name="Parameters">Параметры</h3>
+
+<dl>
+ <dt><code>start</code></dt>
+ <dd>Позиция, с которой начинать извлекать символы. Если передано отрицательное число, она трактуется как <code>strLength - start</code>, где <code>strLength</code> равна длине строки (например, если параметр <code>start</code> равен -3, то он трактуется как <code>strLength - 3</code>.)</dd>
+ <dt><code>length</code></dt>
+ <dd>Необязательный параметр. Количество извлекаемых символов.</dd>
+</dl>
+
+<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
+
+<p>Новая строка, содержащая часть исходной, обрезанной по переданным параметрам.</p>
+
+<h2 id="Description" name="Description">Описание</h2>
+
+<p>Параметр <code>start</code> является индексом символа. Индекс первого символа равен 0, а последнего символа — на один меньше длины строки. Метод <code>substr()</code> начинает извлекать символы начиная с позиции <code>start</code> и собирая <code>length</code> символов (если он не достигнет раньше конца строки, в этом случае будет возвращено меньшее количество символов).</p>
+
+<p>Если параметр <code>start</code> является положительным и он больше, либо равен длине строки, метод <code>substr()</code> вернёт пустую строку.</p>
+
+<p>Если параметр <code>start</code> является отрицательным, метод <code>substr()</code> использует его как индекс символа, начиная с конца строки. Если параметр <code>start</code> отрицателен и по модулю больше длины строки, метод <code>substr()</code> будет использовать 0 в качестве начального индекса. Обратите внимание: описанная обработка отрицательных значений аргумента <code>start</code> не поддерживается JScript от Microsoft.</p>
+
+<p>Если параметр <code>length</code> равен нулю или отрицателен, метод <code>substr()</code> вернёт пустую строку. Если параметр <code>length</code> опущен, метод <code>substr()</code> извлечёт все символы до конца строки.</p>
+
+<h2 id="Examples" name="Examples">Примеры</h2>
+
+<h3 id="Example_Using_substr" name="Example:_Using_substr">Использование метода <code>substr()</code></h3>
+
+<pre class="brush: js">var str = 'абвгдеёжзи';
+
+console.log('(1, 2): ' + str.substr(1, 2)); // '(1, 2): бв'
+console.log('(-3, 2): ' + str.substr(-3, 2)); // '(-3, 2): жз'
+console.log('(-3): ' + str.substr(-3)); // '(-3): жзи'
+console.log('(1): ' + str.substr(1)); // '(1): бвгдеёжзи'
+console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): аб'
+console.log('(20, 2): ' + str.substr(20, 2)); // '(20, 2): '
+</pre>
+
+<h2 id="Polyfill" name="Polyfill">Полифилл</h2>
+
+<p>JScript от Microsoft не поддерживает отрицательные значения для начального индекса. Если вы хотите использовать эту возможность, вы можете использовать следующий код совместимости для обхода этой ошибки:</p>
+
+<pre class="brush: js">// only run when the substr() function is broken
+if ('ab'.substr(-1) != 'b') {
+ /**
+ * Get the substring of a string
+ * @param {integer} start where to start the substring
+ * @param {integer} length how many characters to return
+ * @return {string}
+ */
+ String.prototype.substr = function(substr) {
+ return function(start, length) {
+ // call the original method
+ return substr.call(this,
+ // did we get a negative start, calculate how much it is from the beginning of the string
+ // adjust the start parameter for negative value
+ start &lt; 0 ? this.length + start : start,
+ length)
+ }
+ }(String.prototype.substr);
+}
+</pre>
+
+<h2 id="Specifications" name="Specifications">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="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.substr")}}</p>
+
+<h2 id="See_also" name="See_also">Смотрите также</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.slice()")}}</li>
+ <li>{{jsxref("String.prototype.substring()")}}</li>
+</ul>
+</div>