Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, содержит ли строка подстроку

Короткий ответ

Метод includes() возвращает true, если подстрока найдена:

console.log('Hello, world'.includes('world'));

Результат:

true

Без учёта регистра

Поиск учитывает регистр. Чтобы его не учитывать, приведите обе строки к нижнему регистру:

const text = 'Hello, World';
 
console.log(text.toLowerCase().includes('WORLD'.toLowerCase()));

Результат:

true

Узнать позицию

Если нужно знать, где находится подстрока, используйте indexOf(). Он возвращает позицию или -1:

console.log('Hello, world'.indexOf('world'));

Результат:

7

Одно из нескольких слов

Чтобы проверить список слов, объедините some() с includes():

const message = 'Get a free gift now';
const spamWords = ['free', 'winner', 'prize'];
 
console.log(spamWords.some((word) => message.toLowerCase().includes(word)));

Результат:

true

Частая ошибка

indexOf() возвращает 0, если подстрока в самом начале, а 0 — ложное значение. Не используйте результат indexOf() как условие напрямую:

const text = 'Hello, world';
 
console.log(text.indexOf('Hello') ? 'found' : 'not found');
console.log(text.includes('Hello') ? 'found' : 'not found');

Результат:

not found
found

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.