Метод includes() проверяет, содержит ли строка заданную подстроку, и возвращает, соответственно true или false.

Синтаксис

str.includes(searchString[, position])

Параметры

searchString
Строка для поиска в данной строке.
position Необязательный
Позиция в строке, с которой начинать поиск строки  searchString, по умолчанию 0.

Возвращаемое значение

true, если искомая строка была найдена в данной строке; иначе false.

Описание

Этот метод позволяет вам определять, содержит ли строка другую строку.

Чувствительность к регистру символов

Метод includes() является регистрозависимым. Например, следующее выражение вернёт false:

'Синий кат'.includes('синий'); // вернёт false

Примеры

Использование includes()

var str = 'Быть или не быть вот в чём вопрос.';

console.log(str.includes('Быть'));       // true
console.log(str.includes('вопрос'));    // true
console.log(str.includes('несуществующий')); // false
console.log(str.includes('Быть', 1));    // false
console.log(str.includes('БЫТЬ'));       // 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)
Определение 'String.prototype.includes' в этой спецификации.
Стандарт Изначальное определение.
ECMAScript Latest Draft (ECMA-262)
Определение 'String.prototype.includes' в этой спецификации.
Черновик  

Поддержка браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 41Edge Полная поддержка ДаFirefox Полная поддержка 40
Полная поддержка 40
Нет поддержки 18 — 48
Альтернативное имя
Альтернативное имя Использует нестандартное имя: contains
IE Нет поддержки НетOpera Полная поддержка ДаSafari Полная поддержка 9WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 40
Полная поддержка 40
Нет поддержки 18 — 48
Альтернативное имя
Альтернативное имя Использует нестандартное имя: contains
Opera Android Полная поддержка ДаSafari iOS Полная поддержка 9Samsung Internet Android Полная поддержка Даnodejs Полная поддержка 4.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Использует нестандартное имя.
Использует нестандартное имя.

String.prototype.contains

 

В Firefox с версии 18 по версию 39, этот метод назывался «contains». Он был переименован в «includes» в замечании баг 1102219 по следующей причине:

Как было сообщено, некоторые сайты, использующие MooTools 1.2, ломаются в Firefox 17. Эта версия MooTools проверяет существование метода String.prototype.contains() и, если он не существует, добавляет свой собственный. С введением этого метода в Firefox 17, поведение этой проверки изменилось таким образом, что реализация String.prototype.contains(), основанная на MooTools, сломалась. В результате это изменение было отключено в Firefox 17. Метод String.prototype.contains() доступен в следующей версии Firefox — Firefox 18.

MooTools 1.3 принудительно использует свою собственную версию метода String.prototype.contains(), так что использующие его веб-сайты не должны ломаться. Тем не менее, следует отметить, что сигнатура метода в MooTools 1.3 отличается от сигнатуры метода в ECMAScript 2015 (во втором аргументе). В MooTools 1.5+ сигнатура изменена для соответствия стандарту ES2015.

 

В Firefox 48, метод String.prototype.contains() был удалён. Следует использовать только String.prototype.includes().

См. также

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

Внесли вклад в эту страницу: fscholz, dima74, PetrBorisov, kdex, burashka, Mingun
Обновлялась последний раз: fscholz,