Это экспериментальная технология, часть предложения 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 6 и может быть доступен ещё не во всех реализациях JavaScript. Однако, вы можете легко эмулировать этот метод:
if (!String.prototype.includes) {
String.prototype.includes = function() {
'use strict';
return String.prototype.indexOf.apply(this, arguments) !== -1;
};
}
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 6 (ECMA-262) Определение 'String.prototype.includes' в этой спецификации. |
Черновик | Изначальное определение. |
Совместимость с браузерами
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | 41 | 18 (18) | Нет | Нет | Нет |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | Нет | Нет | 18.0 (18) | Нет | Нет | Нет |
String.prototype.contains
В Firefox с версии 18 по версию 36, этот метод назывался «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 6 (во втором аргументе). В MooTools 1.5+ сигнатура изменена для соответствия стандарту ES6.