Метод 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  

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 41Edge Full support YesFirefox Full support 40
Full support 40
No support 18 — 48
Alternate Name
Alternate Name Uses the non-standard name: contains
IE No support NoOpera Full support YesSafari Full support 9WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 40
Full support 40
No support 18 — 48
Alternate Name
Alternate Name Uses the non-standard name: contains
Opera Android Full support YesSafari iOS Full support 9Samsung Internet Android Full support Yesnodejs Full support 4.0.0

Legend

Full support  
Full support
No support  
No support
Uses a non-standard name.
Uses a non-standard name.

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,