aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/string/indexof/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/string/indexof/index.html')
-rw-r--r--files/uk/web/javascript/reference/global_objects/string/indexof/index.html154
1 files changed, 154 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/string/indexof/index.html b/files/uk/web/javascript/reference/global_objects/string/indexof/index.html
new file mode 100644
index 0000000000..3c0639bad4
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/string/indexof/index.html
@@ -0,0 +1,154 @@
+---
+title: String.prototype.indexOf()
+slug: Web/JavaScript/Reference/Global_Objects/String/indexOf
+tags:
+ - JavaScript
+ - Prototype
+ - String
+ - Довідка
+ - метод
+translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <strong><code>indexOf()</code></strong> починає пошук від символа за індексом <code>fromIndex</code> всередині об'єкта <code>{{jsxref("String")}}</code>, з якого здійснюється виклик метода, і вертає індекс першого знайденого збігу із шуканим значенням. Якщо значення не знайдене, повертає <code>-1</code>.</p>
+
+<p>{{EmbedInteractiveExample("pages/js/string-indexof.html")}}</p>
+
+<div class="hidden">
+<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
+</div>
+
+<div class="note"><strong>Заувага:</strong> Клас <code>Array</code> має подібний метод <code>{{jsxref("Array.prototype.indexOf()", "indexOf()")}}</code>.</div>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><var>str</var>.indexOf(<var>searchValue</var>[, <var>fromIndex</var>])</pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><em><code>searchValue</code></em></dt>
+ <dd>Рядок, що є шуканим значенням.</dd>
+ <dd>Якщо рядок явно не заданий, <a href="https://tc39.github.io/ecma262/#sec-tostring"><var>searchValue</var> буде примусово приведений до <code>"undefined"</code></a>, і пошук цього значення буде здійснюватись у <code><var>str</var></code>.</dd>
+ <dd>Отже, для прикладу: <code>'undefined'.indexOf()</code> поверне <code>0</code>, оскільки значення undefined знайдене на позиції <code>0</code>, але <code>'undefine'.indexOf()</code> поверне <code>-1</code>, оскільки рядок <code>"undefine"</code> не знайдений.</dd>
+ <dt><em><code>fromIndex</code> </em>{{optional_inline}}</dt>
+ <dd>Ціле число, що позначає індекс, з якого має розпочинатися пошук; за замовчуванням дорівнює <code>0</code>.</dd>
+ <dd>Якщо вказане значення <code>fromIndex</code> менше за <code>0</code> чи більше за <code>str.length</code>, пошук розпочнеться з індексу <code>0</code> та <code>str.length</code>, відповідно.</dd>
+ <dd>Для прикладу, <code>'всім привіт'.indexOf('м', -5)</code> поверне <code>3</code>, оскільки метод почне пошук з позициї <code>0</code>, а <code>м</code> знайдеться на позиції <code>3</code>. З іншого боку, <code>'всім привіт'.indexOf('м', 11)</code> (і з будь-яким значенням <code>fromIndex</code>, більшим за <code>11</code>) поверне <code>-1</code>, оскільки пошук починається з позиції <code>11</code>, позиції <em>після</em> кінця рідка.</dd>
+</dl>
+
+<h3 id="Вертає">Вертає</h3>
+
+<p>Індекс першого знайденого збігу з <em><code>searchValue</code></em>, або <strong><code>-1</code></strong>, якщо жодного збігу не знайдено.</p>
+
+<p>Порожній рядок <code><var>searchValue</var></code> призводить до дивних результатів. За відсутності значення <code><var>fromIndex</var></code>, чи будь-якого значення <em><code>fromIndex</code></em>, нижчого за довжину рядка, повернене значення буде таким самим, як значення <code><var>fromIndex</var></code>:</p>
+
+<pre class="brush: js">'всім привіт'.indexOf('') // вертає 0
+'всім привіт'.indexOf('', 0) // вертає 0
+'всім привіт'.indexOf('', 3) // вертає 3
+'всім привіт'.indexOf('', 8) // вертає 8</pre>
+
+<p>Однак, якщо значення <code><var>fromIndex</var></code> є рівним або більшим за довжину рядка, повернене значення <em>дорівнює</em> довжині рядка:</p>
+
+<pre class="brush: js">'всім привіт'.indexOf('', 11) // вертає 11
+'всім привіт'.indexOf('', 13) // вертає 11
+'всім привіт'.indexOf('', 22) // вертає 11</pre>
+
+<p>В минулій версії JS порожній рядок відшукувався одразу після вказаного значення індексу. У останній версії JS порожній рядок буде знайдений в кінці рядка, в якому здійснюється пошук.</p>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Символи рядка індексуються зліва направо. Індекс першого символу дорівнює <code>0</code>, а індекс останнього символу рядка <code><em>stringName</em></code> дорівнює <code><em>stringName</em>.length - 1</code>.</p>
+
+<pre class="brush: js">'Непозбувна бентега'.indexOf('Непозбувна'); // вертає 0
+'Непозбувна бентега'.indexOf('Непозбувний'); // вертає -1
+'Непозбувна бентега'.indexOf('бентега', 0); // вертає 11
+'Непозбувна бентега'.indexOf('бентега', 5); // вертає 11
+'Непозбувна бентега'.indexOf('бентега', 12); // вертає -1
+'Розкішниця'.indexOf(''); // вертає 0
+'Розкішниця'.indexOf('', 9); // вертає 9
+'Розкішниця'.indexOf('', 10); // вертає 10
+'Розкішниця'.indexOf('', 11); // вертає 10</pre>
+
+<p>Метод <code>indexOf()</code> є регістрозалежним. Наприклад, вираз нижче повертає <code>-1</code>:</p>
+
+<pre class="brush: js">'Непозбувна бентега'.indexOf('Бентега'); // вертає -1
+</pre>
+
+<h3 id="Перевірка_наявності_підрядка">Перевірка наявності підрядка</h3>
+
+<p>Зважте на те, що <code>0</code> не обчислюється як <code>true</code>, а <code>-1</code> не обчислюється як <code>false</code>. Отже, належить у явний спосіб порівнювати значення, що повертається методом <code>indexOf()</code>, зі значенням <code>-1</code>:</p>
+
+<pre class="brush: js">'Непозбувна бентега'.indexOf('бентега') !== -1; // true
+'Непозбувна бентега'.indexOf('Бентега') !== -1; // false
+~('Непозбувна бентега'.indexOf('Непозбувний')) // 0, тобто, хибне значення</pre>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Використання_indexOf">Використання <code>indexOf()</code></h3>
+
+<p>Наступний приклад використовує <code>indexOf()</code>, щоб знайти значення у рядку <code>"абабагаламага"</code>.</p>
+
+<pre class="brush: js">const str = '<code>абабагаламага</code>'
+
+console.log('Індекс першої г з початку дорівнює ' + str.indexOf('г')) // виводить 5
+console.log('Індекс "баба" з початку дорівнює ' + str.indexOf('баба')) // виводить 1</pre>
+
+<h3 id="Регістрозалежність_метода_indexOf">Регістрозалежність метода <code>indexOf()</code></h3>
+
+<p>В цьому прикладі наведено два текстових рядки.</p>
+
+<p>Їх вміст є майже однаковим, але у <code>myCapString</code> слова починаються з великої літери. Перший метод <a href="/uk/docs/Web/API/Console/log" title="The Console method log() outputs a message to the web console."><code>console.log()</code></a> виводить <code>13</code>. Але, через те, що метод <code>indexOf()</code> чутливий до регістру, рядок <code>"камамбер"</code> не знаходиться у <code>myCapString</code>, а отже, другий метод <code>console.log()</code> виводить <code>-1</code>.</p>
+
+<pre class="brush: js">var myString = 'брі, дорблю, камамбер';
+var myCapString = 'Брі, Дорблю, Камамбер';
+
+console.log('myString.indexOf("камамбер") дорівнює ' + myString.indexOf('камамбер'))
+// виводить 13
+console.log('myCapString.indexOf("камамбер") дорівнює ' + myCapString.indexOf('камамбер'))
+// виводить -1</pre>
+
+<h3 id="Використання_indexOf_для_підрахунку_кількості_вживань_літери_у_рядку">Використання <code>indexOf()</code> для підрахунку кількості вживань літери у рядку</h3>
+
+<p>Наступний приклад присвоює змінній <code>count</code> число вживать літери <code>с</code> у рядку <code>str</code>:</p>
+
+<pre class="brush: js">const str = 'Буває, часом сліпну від краси.'
+let count = 0
+let position = str.indexOf('с')
+
+while (position !== -1) {
+ count++
+ position = str.indexOf('с', position + 1)
+}
+
+console.log(count) // виводить 3</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Специфікація</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
+
+<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
+
+<p>{{Compat("javascript.builtins.String.indexOf")}}</p>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.charAt()")}}</li>
+ <li>{{jsxref("String.prototype.lastIndexOf()")}}</li>
+ <li>{{jsxref("String.prototype.includes()")}}</li>
+ <li>{{jsxref("String.prototype.split()")}}</li>
+ <li>{{jsxref("Array.prototype.indexOf()")}}</li>
+</ul>