--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes tags: - JavaScript - Prototype - Reference - String - метод translation_of: Web/JavaScript/Reference/Global_Objects/String/includes ---
Метод includes()
проверяет, содержит ли строка заданную подстроку, и возвращает, соответственно true
или false
.
str.includes(searchString[, position])
searchString
position
{{optional_inline}}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; } }; }
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('ES6', '#sec-string.prototype.includes', 'String.prototype.includes')}} | {{Spec2('ES6')}} | Изначальное определение. |
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.String.includes")}}
В Firefox с версии 18 по версию 39, этот метод назывался «contains». Он был переименован в «includes» в замечании {{bug(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()
.