includes() проверяет, содержит ли строка другую строку.
Метод возвращает true или false, поэтому он очень удобен для простых проверок без лишних сравнений.
Синтаксис
str.includes(searchString)
str.includes(searchString, position)
Метод вызывается у строки и возвращает boolean.
Как работает includes()
const text = "JavaScript";
console.log(text.includes("Script")); // true
console.log(text.includes("Java")); // true
console.log(text.includes("Python")); // false
Метод ищет подстроку внутри строки и сообщает, нашёл её или нет.
Позиция начала поиска
Во втором аргументе можно указать, с какого индекса начинать поиск.
const text = "JavaScript";
console.log(text.includes("a", 0)); // true
console.log(text.includes("a", 2)); // true
console.log(text.includes("J", 1)); // false
Это полезно, если нужно искать не с самого начала строки.
Регистр важен
includes() чувствителен к регистру.
const text = "JavaScript";
console.log(text.includes("java")); // false
console.log(text.includes("Java")); // true
Если нужен поиск без учёта регистра, строку обычно заранее приводят к одному формату.
const text = "JavaScript";
console.log(text.toLowerCase().includes("java")); // true
Когда это полезно
includes() удобно использовать, когда:
- нужно проверить наличие слова или части строки
- важно получить сразу
trueилиfalse - хочется написать более читаемый код, чем через
indexOf()
Пример:
const email = "user@gmail.com";
console.log(email.includes("@")); // true
includes() и indexOf()
Раньше для такой проверки часто использовали indexOf().
const text = "JavaScript";
console.log(text.indexOf("Script") !== -1); // true
console.log(text.includes("Script")); // true
Оба варианта работают, но includes() читается проще, когда нужна именно проверка “есть или нет”.
Если подстрока пустая
Пустая строка считается найденной.
const text = "hello";
console.log(text.includes("")); // true
Это нормальное поведение метода.
Частые ошибки
Забывать про регистр
const text = "JavaScript";
console.log(text.includes("javascript")); // false
Если нужен поиск без учёта регистра, лучше заранее использовать toLowerCase() или toUpperCase().
Ждать индекс вместо true/false
const text = "hello";
console.log(text.includes("e")); // true
includes() возвращает не индекс, а булево значение.
Если нужен именно индекс, используют indexOf().
Быстрая памятка
includes(searchString)проверяет наличие подстроки- метод возвращает
trueилиfalse - можно указать позицию начала поиска
- поиск чувствителен к регистру
- для простой проверки наличия строки
includes()удобнее, чемindexOf()
Коротко
includes() - это метод строки в JavaScript, который проверяет, есть ли внутри строки нужная подстрока. Он особенно удобен, когда нужен простой и читаемый ответ в виде true или false.