String.prototype.includes()

Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

Сводка

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

Синтаксис

str.includes(searchString[, position])

Параметры

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

Описание

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

Примеры

Пример: использование метода 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() {
    'use strict';
    return String.prototype.indexOf.apply(this, arguments) !== -1;
  };
}

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

Спецификация Статус Комментарии
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'String.prototype.includes' в этой спецификации.
Стандарт Изначальное определение.

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка 41 40 (40) Нет Нет 9
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка Нет Нет 40.0 (40) Нет Нет Нет

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.

Смотрите также

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

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