Как получить расширение файла
Короткий ответ
В Node.js extname() из node:path возвращает расширение с точкой:
import { extname, basename } from 'node:path';
console.log(extname('photos/cat.jpeg'));
console.log(basename('photos/cat.jpeg'));
console.log(basename('photos/cat.jpeg', '.jpeg'));Результат:
.jpeg
cat.jpeg
catВ браузере
Без node:path возьмите всё после последней точки. У имени без точки расширения нет:
const getExtension = (name) => {
const dot = name.lastIndexOf('.');
return dot > 0 ? name.slice(dot + 1).toLowerCase() : '';
};
console.log(getExtension('Report.PDF'));
console.log(getExtension('archive.tar.gz'));
console.log(getExtension('README'));
console.log(getExtension('.gitignore'));Результат:
pdf
gzЧастая ошибка
split('.').pop() возвращает всё имя, если точки нет:
console.log('README'.split('.').pop());Результат:
READMEФункции из этого ответа
- String.prototype.lastIndexOf — Ищет последнее вхождение текста в строке.
- String.prototype.slice — Возвращает часть строки.