EndsWith: примеры (JAVASCRIPT)
endsWith(searchString, length?): booleanФункция endsWith в JavaScript
Метод endsWith() проверяет, заканчивается ли строка символами указанными в аргументе. Этот метод полезен при проверке расширений файлов, суффиксов или завершающих частей текста.
Аргументы метода
- searchString (обязательный): подстрока, которую нужно найти в конце исходной строки.
- length (необязательный): ограничивает длину строки, в которой производится поиск. Если указан, метод проверяет окончание строки, обрезанной до этой длины.
Возвращаемое значение
Метод возвращает true, если строка заканчивается указанной подстрокой, и false в противном случае. Регистр символов учитывается.
Примеры применения endsWith
Проверка расширения файла
const filename = 'document.pdf';
console.log(filename.endsWith('.pdf'));true
Использование второго параметра
const str = 'Hello world';
console.log(str.endsWith('Hello', 5));true
Регистрозависимость
const text = 'JavaScript';
console.log(text.endsWith('script'));
console.log(text.endsWith('Script'));false true
Похожие методы в JavaScript
startsWith()
Проверяет начало строки. Применяется для проверки префиксов или протоколов.
includes()
Определяет наличие подстроки в любом месте строки. Полезен для общего поиска.
match() и test()
Регулярные выражения предоставляют более гибкий поиск. Метод test() объекта RegExp работает быстрее для сложных паттернов.
Метод endsWith() стоит использовать для простых проверок окончаний, когда не нужны регулярные выражения.
Частые ошибки
Передача нестрокового аргумента
'text'.endsWith(null);false
Некорректный второй параметр
'hello'.endsWith('lo', 0);false
Совпадение за пределами длины
const str = 'web.js';
console.log(str.endsWith('.js', 3));false
Изменения в спецификации
Метод endsWith() был добавлен в ECMAScript 2015 (ES6). Изменений в работе метода с момента добавления не было, но в более поздних версиях стандарта уточнена обработка крайних случаев, например, корректное приведение аргументов к строковому типу.
Расширенные примеры
Проверка нескольких расширений
function isImageFile(filename) {
return ['.png', '.jpg', '.gif'].some(ext => filename.endsWith(ext));
}
console.log(isImageFile('photo.jpg'));
console.log(isImageFile('document.pdf'));true false
Динамическая проверка длины
const checkSuffix = (str, suffix, maxLength) => {
return str.endsWith(suffix, maxLength);
};
console.log(checkSuffix('program.js', '.js', 10));true
Использование в цепочках методов
const urls = ['site.com/page.html', 'site.com/script.js'];
const jsFiles = urls.filter(url => url.endsWith('.js'));
console.log(jsFiles);['site.com/script.js']
Аналоги в других языках
Python: endswith()
text = 'example.py'
print(text.endswith('.py'))True
PHP: str_ends_with()
$filename = 'image.jpg';
echo str_ends_with($filename, '.jpg');1
C#: EndsWith()
string path = @"C:\\file.txt";
bool result = path.EndsWith(".txt");True
В отличие от JavaScript, Python и PHP имеют аналогичные методы, а в C++ и C таких встроенных функций нет.