Метод includes()
визначає чи може один рядок бути знайденим всередині іншого, повертаючи, відповідно, true
або false
.
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- Позиція всередині рядка, з якої буде почато пошук рядка
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;
};
}
Специфікації
Специфікація |
---|
ECMAScript (ECMA-262) The definition of 'String.prototype.includes' in that specification. |
Сумісність з веб-переглядачами
BCD tables only load in the browser
Таблиця сумісності на цій сторінці, згенерована з структурованих даних. Якщо ви хочете внести свій вклад в дані, будь ласка, ознайомтесь з https://github.com/mdn/browser-compat-data і надішлість нам запит на додавання даних.
String.prototype.contains
У 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()
.