aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/string/substr/index.html
blob: 265ef1552d31cbfd4acbd70ceef70d0edb589b43 (plain)
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 &lt; 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>