--- title: String.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/String/includes tags: - JavaScript - Method - Prototype - Reference - String - Довідка - метод translation_of: Web/JavaScript/Reference/Global_Objects/String/includes ---
Метод includes()
визначає чи може один рядок бути знайденим всередині іншого, повертаючи, відповідно, true
або false
.
{{EmbedInteractiveExample("pages/js/string-includes.html", "shorter")}}
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
str.includes(searchString[, position])
searchString
str
.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 console.log(str.includes('')); // true
Цей метод був доданий до специфікації ECMAScript 2015 і може бути недоступним у всіх реалізаціях JavaScript.
Однак, ви можете легко розробити поліфіл для цього методу:
if (!String.prototype.includes) { String.prototype.includes = function(search, start) { 'use strict'; if (search instanceof RegExp) { throw TypeError('first argument must not be a RegExp'); } if (start === undefined) { start = 0; } return this.indexOf(search, start) !== -1; }; }
Специфікація |
---|
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}} |
Таблиця сумісності на цій сторінці, згенерована з структурованих даних. Якщо ви хочете внести свій вклад в дані, будь ласка, ознайомтесь з https://github.com/mdn/browser-compat-data і надішлість нам запит на додавання даних.
{{Compat("javascript.builtins.String.includes")}}
У 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()
.