Метод includes() визначає чи може один рядок бути знайденим всередині іншого, повертаючи true або false за необхідності.

Синтаксис

str.includes(searchString[, position])

Параметри

searchString
Рядок для пошуку всередині вхідного рядка.
position Optional
Позиція всередині рядка, з якого буде почато пошук searchString. (за замовчуванням 0).

Значення, що повертається

true якщо шуканий рядок знайдений, де-завгодно всередині даної строки; в іншому випадку, false якщо не знайдений.

Опис

Цей метод дозволяє визначити чи знаходиться один рядок всередині іншого.

Чутливість до регістру

Метод includes() є чутливим до регістру. Для прикладу, наступний вираз поверне false:

'Blue Whale'.includes('blue'); // returns false

Приклади

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

var str = 'To be, or not to be, that is the question.';

console.log(str.includes('To be'));       // true
console.log(str.includes('question'));    // true
console.log(str.includes('nonexistent')); // false
console.log(str.includes('To be', 1));    // false
console.log(str.includes('TO BE'));       // false

Поліфіл

Цей метод був доданий до специфікації ECMAScript 2015 і може бути недоступним  у всіх реалізаціях JavaScript. Однак, ви можете легко розробити поліфіл для цього методу:

if (!String.prototype.includes) {
  String.prototype.includes = function(search, start) {
    'use strict';
    if (typeof start !== 'number') {
      start = 0;
    }
    
    if (start + search.length > this.length) {
      return false;
    } else {
      return this.indexOf(search, start) !== -1;
    }
  };
}

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

Специфікація Статус Коментар
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.includes' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'String.prototype.includes' in that specification.
Draft  

Сумісність з браузерами

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support41 Yes

18 — 481

40

No Yes9
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes

18 — 481

40

Yes9 ?

1. Supported as contains.

String.prototype.contains

В Firefox 18 - 39, назва цього методу була contains(). Він був перейменований на includes() в bug 1102219 в зв'язку з наступною причиною:

Повідомлялося, що деякі веб-сайти, які використовують MooTools 1.2 не працють в Firefox 17. Ця версія MooTools перевіряла чи існує метод String.prototype.contains() і, якщо ні, то MooTools додає власну функцію. Ші введенням цієї функції в Firefox 17, поведінка перевірки змінвалася таким чином, що ставала причиною непрацездатності коду, реалізація якого базувалась на методі String.prototype.contains() від MooTools. В результаті, реалізація була відключена в Firefox 17 і String.prototype.contains() був доступний на одну версію пізніше, в Firefox 18, коли налагодження зв'язків з MooTools привело до випуску MooTools версії 1.2.6.

MooTools 1.3 примусово запускає власну версію методу String.prototype.contains(), тож веб-сайти, що полягаються на наї не повинні ламатися. Однак, ви повинні заувадити, що сигнатура цього методі відразняється для MooTools 1.3 і ECMAScript 2015 (на місці другого аргумента). Пізніше, MooTools 1.5+ змінив форму запису у відповідності до стандарту ES2015.

В Firefox 48, метод String.prototype.contains() було видалено. Використовуйте тільки String.prototype.includes().

Див. також

Мітки документа й учасники

Мітки: 
 Зробили внесок у цю сторінку: ValeriiBoiko
 Востаннє оновлена: ValeriiBoiko,