Работа со строками в 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']