From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../global_objects/string/indexof/index.html | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/string/indexof/index.html (limited to 'files/uk/web/javascript/reference/global_objects/string/indexof/index.html') 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 +--- +
{{JSRef}}
+ +

Метод indexOf() починає пошук від символа за індексом fromIndex всередині об'єкта {{jsxref("String")}}, з якого здійснюється виклик метода, і вертає індекс першого знайденого збігу із шуканим значенням. Якщо значення не знайдене, повертає -1.

+ +

{{EmbedInteractiveExample("pages/js/string-indexof.html")}}

+ + + +
Заувага: Клас Array має подібний метод {{jsxref("Array.prototype.indexOf()", "indexOf()")}}.
+ +

Синтаксис

+ +
str.indexOf(searchValue[, fromIndex])
+ +

Параметри

+ +
+
searchValue
+
Рядок, що є шуканим значенням.
+
Якщо рядок явно не заданий, searchValue буде примусово приведений до "undefined", і пошук цього значення буде здійснюватись у str.
+
Отже, для прикладу: 'undefined'.indexOf() поверне 0, оскільки значення undefined знайдене на позиції 0, але 'undefine'.indexOf() поверне -1, оскільки рядок "undefine" не знайдений.
+
fromIndex {{optional_inline}}
+
Ціле число, що позначає індекс, з якого має розпочинатися пошук; за замовчуванням дорівнює 0.
+
Якщо вказане значення fromIndex менше за 0 чи більше за str.length, пошук розпочнеться з індексу 0 та str.length, відповідно.
+
Для прикладу, 'всім привіт'.indexOf('м', -5) поверне 3, оскільки метод почне пошук з позициї 0, а м знайдеться на позиції 3. З іншого боку, 'всім привіт'.indexOf('м', 11) (і з будь-яким значенням fromIndex, більшим за 11) поверне -1, оскільки пошук починається з позиції 11, позиції після кінця рідка.
+
+ +

Вертає

+ +

Індекс першого знайденого збігу з searchValue, або -1, якщо жодного збігу не знайдено.

+ +

Порожній рядок searchValue призводить до дивних результатів. За відсутності значення fromIndex, чи будь-якого значення fromIndex, нижчого за довжину рядка, повернене значення буде таким самим, як значення fromIndex:

+ +
'всім привіт'.indexOf('')    // вертає 0
+'всім привіт'.indexOf('', 0) // вертає 0
+'всім привіт'.indexOf('', 3) // вертає 3
+'всім привіт'.indexOf('', 8) // вертає 8
+ +

Однак, якщо значення fromIndex є рівним або більшим за довжину рядка, повернене значення дорівнює довжині рядка:

+ +
'всім привіт'.indexOf('', 11) // вертає 11
+'всім привіт'.indexOf('', 13) // вертає 11
+'всім привіт'.indexOf('', 22) // вертає 11
+ +

В минулій версії JS порожній рядок відшукувався одразу після вказаного значення індексу. У останній версії JS порожній рядок буде знайдений в кінці рядка, в якому здійснюється пошук.

+ +

Опис

+ +

Символи рядка індексуються зліва направо. Індекс першого символу дорівнює 0, а індекс останнього символу рядка stringName дорівнює stringName.length - 1.

+ +
'Непозбувна бентега'.indexOf('Непозбувна');     // вертає  0
+'Непозбувна бентега'.indexOf('Непозбувний');    // вертає -1
+'Непозбувна бентега'.indexOf('бентега', 0);     // вертає 11
+'Непозбувна бентега'.indexOf('бентега', 5);     // вертає 11
+'Непозбувна бентега'.indexOf('бентега', 12);    // вертає -1
+'Розкішниця'.indexOf('');                       // вертає  0
+'Розкішниця'.indexOf('', 9);                    // вертає  9
+'Розкішниця'.indexOf('', 10);                   // вертає 10
+'Розкішниця'.indexOf('', 11);                   // вертає 10
+ +

Метод indexOf() є регістрозалежним. Наприклад, вираз нижче повертає -1:

+ +
'Непозбувна бентега'.indexOf('Бентега');  // вертає -1
+
+ +

Перевірка наявності підрядка

+ +

Зважте на те, що 0 не обчислюється як true, а -1 не обчислюється як false. Отже, належить у явний спосіб порівнювати значення, що повертається методом indexOf(), зі значенням -1:

+ +
'Непозбувна бентега'.indexOf('бентега') !== -1;  // true
+'Непозбувна бентега'.indexOf('Бентега') !== -1; // false
+~('Непозбувна бентега'.indexOf('Непозбувний')) // 0, тобто, хибне значення
+ +

Приклади

+ +

Використання indexOf()

+ +

Наступний приклад використовує indexOf(), щоб знайти значення у рядку "абабагаламага".

+ +
const str = 'абабагаламага'
+
+console.log('Індекс першої г з початку дорівнює ' + str.indexOf('г'))   // виводить 5
+console.log('Індекс "баба" з початку дорівнює ' + str.indexOf('баба'))   // виводить 1
+ +

Регістрозалежність метода indexOf()

+ +

В цьому прикладі наведено два текстових рядки.

+ +

Їх вміст є майже однаковим, але у myCapString слова починаються з великої літери. Перший метод console.log() виводить 13. Але, через те, що метод indexOf() чутливий до регістру, рядок "камамбер" не знаходиться у myCapString, а отже, другий метод console.log() виводить -1.

+ +
var myString = 'брі, дорблю, камамбер';
+var myCapString = 'Брі, Дорблю, Камамбер';
+
+console.log('myString.indexOf("камамбер") дорівнює ' + myString.indexOf('камамбер'))
+// виводить 13
+console.log('myCapString.indexOf("камамбер") дорівнює ' + myCapString.indexOf('камамбер'))
+// виводить -1
+ +

Використання indexOf() для підрахунку кількості вживань літери у рядку

+ +

Наступний приклад присвоює змінній count число вживать літери с у рядку str:

+ +
const str = 'Буває, часом сліпну від краси.'
+let count = 0
+let position = str.indexOf('с')
+
+while (position !== -1) {
+  count++
+  position = str.indexOf('с', position + 1)
+}
+
+console.log(count)  // виводить 3
+ +

Специфікації

+ + + + + + + + + + +
Специфікація
{{SpecName('ESDraft', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}
+ +

Підтримка веб-переглядачами

+ + + +

{{Compat("javascript.builtins.String.indexOf")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf