Поиск в строке в JavaScript: как искать символы и слова в JS

Работа со строками в JavaScript часто включает поиск определенных символов, слов или фраз. Это может быть проверка, есть ли слово в тексте, определение его позиции или извлечение всех совпадений сразу. В языке есть несколько встроенных методов, которые решают такие задачи — они удобны, просты в использовании и подходят для разных сценариев, от простого поиска до работы с регулярными выражениями.

includes — проверка наличия символов или слов

Метод includes возвращает true, если строка содержит указанный текст, и false — если нет.

const message = 'Скоро начнется вебинар по JavaScript';
console.log(message.includes('вебинар')); // true
console.log(message.includes('лекция'));  // false

indexOf — поиск позиции первого вхождения

indexOf возвращает индекс первого найденного символа или подстроки. Если текст не найден, возвращается -1.

const message = 'На сервере произошла ошибка';
console.log(message.indexOf('ошибка')); // 22
console.log(message.indexOf('успех'));  // -1

Поиск с указанной позиции

Можно начать поиск не с начала строки, а с указанного индекса.

const message = 'ошибка ошибка ошибка';
console.log(message.indexOf('ошибка', 8)); // 14

lastIndexOf — поиск позиции последнего вхождения

lastIndexOf ищет текст с конца строки, возвращая индекс последнего найденного совпадения.

const message = 'Лог: ошибка, ошибка, критическая ошибка';
console.log(message.lastIndexOf('ошибка')); // 34

startsWith — проверка начала строки

startsWith проверяет, начинается ли строка с заданных символов или слова.

const title = 'Документ: инструкция пользователя';
console.log(title.startsWith('Документ')); // true
console.log(title.startsWith('инструкция')); // false

endsWith — проверка конца строки

endsWith проверяет, заканчивается ли строка указанным текстом.

const title = 'Отчет по проекту';
console.log(title.endsWith('проекту')); // true
console.log(title.endsWith('Отчет'));   // false

search — поиск с регулярным выражением

search находит первое совпадение с регулярным выражением и возвращает его позицию.

const text = 'ID: 123-ABC-456';
console.log(text.search(/\d{3}-[A-Z]{3}/)); // 4

Если совпадений нет, возвращается -1.

match — поиск всех совпадений с регулярным выражением

match возвращает массив всех совпадений или null, если ничего не найдено.

const log = 'Ошибка 404, Ошибка 500, Ошибка 403';
const errors = log.match(/Ошибка \d+/g);
console.log(errors); // ['Ошибка 404', 'Ошибка 500', 'Ошибка 403']