diff options
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.html | 116 |
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 < 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> |