Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить расширение файла

Короткий ответ

В 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

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.