Как проверить, начинается или заканчивается ли строка подстрокой
Короткий ответ
Метод startsWith() проверяет начало строки, endsWith() — конец:
const file = 'report-2025.pdf';
console.log(file.startsWith('report'));
console.log(file.endsWith('.pdf'));Результат:
true
trueБез учёта регистра
Оба метода учитывают регистр. Сначала приведите строку к нижнему регистру:
const file = 'PHOTO.JPG';
console.log(file.endsWith('.jpg'));
console.log(file.toLowerCase().endsWith('.jpg'));Результат:
false
trueОдин из нескольких вариантов
Чтобы проверить сразу несколько вариантов, объедините some() и startsWith():
const url = 'https://example.com';
const secure = ['https://', 'wss://'].some((prefix) => url.startsWith(prefix));
console.log(secure);Результат:
trueЧастая ошибка
Сравнение indexOf(...) === 0 тоже работает, но ищет по всей строке и хуже читается. И помните, что пустая подстрока подходит всегда:
console.log('hello'.startsWith(''));Результат:
trueФункции из этого ответа
- String.prototype.startsWith — Проверяет, начинается ли строка с заданной подстроки.
- String.prototype.endsWith — Проверяет, заканчивается ли строка заданным текстом.
- String.prototype.toLowerCase — Переводит строку в нижний регистр.