Подтвердить что ты не робот

Как получить расширение файла с помощью jquery или javascript?

Я хочу проверить тип загруженного файла. Если имя типа example.txt, я хочу получить только часть .txt. Как я могу достичь этого с помощью JQuery или javascript.

Любые предложения или ссылки будут благодарны!!!

4b9b3361

Ответ 1

Простое решение .split() и .pop(), чтобы получить последнюю строку в массиве, вот так:

var ext = fileName.split('.').pop();

Это приведет вас только к "txt" без ., просто добавьте, если необходимо. Это также работает, например: My.File.name.has.an extension.txt. Если у него нет расширения, оно вернет имя файла, поэтому вы можете проверить это... или перейти в совершенно другое направление и проверить его на набор или известные расширения через регулярное выражение.

Ответ 2

Используйте lastIndexOf() и substr():

function getFileExtension(name)
{
    int found = name.lastIndexOf('.') + 1;
    return (found > 0 ? name.substr(found) : "");
}

Обратите внимание, что эта реализация возвращает пустую строку, если имя файла не содержит символа периода (то есть не имеет расширения). Реализации, основанные на split(), иногда возвращают полное имя файла в этом случае.

Ответ 3

Если вам нужно проверить несколько расширений:

var filename = "picture.jpg";
var valid_extensions = /(\.jpg|\.jpeg|\.gif)$/i;   
if(valid_extensions.test(filename))
{ 
   alert('OK');
}
else
{
   alert('Invalid File');
}

Это устраняет необходимость в синтаксическом анализе строки, если вы хотите проверить расширение, например, перед загрузкой файла.

Ответ 4

var text = 'example.txt',
    ext  = text.split('.')[1];

Ответ 5

Слейте все имя файла. как разделитель. Разделение будет хранить разделенные элементы в массиве. Возьмите последний элемент массива.

Ответ 6

    if((document.form1.upload.value.lastIndexOf(".jpg")==-1) {
   alert("Please upload only .jpg extention file");
   return false;
}

lastIndexOf вернет индекс последнего вхождения указанного аргумента поиска. Если не найдено, -1 вернет

Ответ 7

Ответ Frédéric работал хорошо для меня, однако функция продолжает выходить из строя в консоли Chrome с помощью "Неожиданного идентификатора". "Int" был выпущен, и эта модификация работала.

function getFileExtension(name){
  var found = name.lastIndexOf('.') + 1;
  return (parseInt(found) > 0 ? name.substr(found) : "");
}