1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
---
title: String.prototype.substr()
slug: Web/JavaScript/Reference/Global_Objects/String/substr
tags:
- JavaScript
- String
- метод
- не рекомендований
- рядок
translation_of: Web/JavaScript/Reference/Global_Objects/String/substr
---
<p>{{JSRef}}</p>
<div class="warning"><strong>Застереження</strong>: Хоча метод <code>String.prototype.substr(…)</code> не є строго не рекомендованим (як "прибраний з веб-стандартів"), він вважається <strong>застарілим</strong> та не бажаний для використання, коли це можливо. Він не є частиною ядра мови JavaScript та може бути прибраний в майбутньому. За можливості, використовуйте замість нього метод <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/String/substring">substring()</a></code>.</div>
<p class="seoSummary">Метод <strong><code>substr()</code></strong> повертає частину рядка, що починається з вказаного індекса та продовжується вказану кількість символів.</p>
<div>{{EmbedInteractiveExample("pages/js/string-substr.html")}}</div>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox"><var>str</var>.substr(<var>start</var>[, <var>length]</var>)</pre>
<h3 id="Параметри">Параметри</h3>
<dl>
<dt><code>start</code></dt>
<dd>Індекс першого символу, який треба включити у повернений рядок.</dd>
<dt><code>length</code></dt>
<dd>Необов'язковий. Кількість символів, яку треба повернути.</dd>
</dl>
<h3 id="Значення_що_повертається">Значення, що повертається</h3>
<p>Новий рядок, що містить вказану частину наданого рядка.</p>
<h2 id="Опис">Опис</h2>
<p>Метод <code>substr()</code> вирізає <code>length</code> символів з рядка <code>string</code>, рахуючи з початкового індексу <code>start</code>.</p>
<p>Якщо <code>start</code> є додатним числом, індекс рахується з початку рядка. Його значення обмежується значенням <code>str.length</code>.<br>
Якщо <code>start</code> є від'ємним числом, індекс рахується з кінця рядка. Його значення обмежується значенням <code>-str.length</code>.<br>
Заувага: У Microsoft JScript від'ємне значення аргументу <code>start</code> не вважається посиланням на кінець рядка.</p>
<p>Якщо аргумент <code>length</code> пропущений, <code>substr()</code> повертає символи до кінця рядка.<br>
Якщо <code>length</code> дорівнює {{jsxref("undefined")}}, <code>substr()</code> повертає символи до кінця рядка.<br>
Якщо <code>length</code> є від'ємним числом, він вважається рівним 0.</p>
<p>Для обох, <code>start</code> та <code>length</code>, NaN вважається рівним 0.</p>
<h2 id="Приклади">Приклади</h2>
<h3 id="Використання_substr">Використання <code>substr()</code></h3>
<pre class="brush: js">var aString = 'Mozilla';
console.log(aString.substr(0, 1)); // 'M'
console.log(aString.substr(1, 0)); // ''
console.log(aString.substr(-1, 1)); // 'a'
console.log(aString.substr(1, -1)); // ''
console.log(aString.substr(-3)); // 'lla'
console.log(aString.substr(1)); // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2)); // ''
</pre>
<h2 id="Поліфіл">Поліфіл</h2>
<p>JScript у Microsoft не підтримує від'ємні значення початкового індекса. Щоб використовувати цю функціональність у JScript, ви можете скористатись наступним кодом:</p>
<pre class="brush: js">// запускайте тільки якщо функція substr() не працює
if ('ab'.substr(-1) != 'b') {
/**
* Отримати підрядок з рядка
* @param {integer} start де почати підрядок
* @param {integer} length скільки символів повертати
* @return {string}
*/
String.prototype.substr = function(substr) {
return function(start, length) {
// викликаємо початковий метод
return substr.call(this,
// якщо ми отримали від'ємний start, порахувати, скільки це від початку рядка
// відкоригувати параметр start для від'ємного значення
start < 0 ? this.length + start : start,
length)
}
}(String.prototype.substr);
}
</pre>
<h2 id="Специфікації">Специфікації</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="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</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="Див._також">Див. також</h2>
<ul>
<li>{{jsxref("String.prototype.slice()")}}</li>
<li>{{jsxref("String.prototype.substring()")}}</li>
</ul>
|