Я хочу проверить тип загруженного файла. Если имя типа example.txt
, я хочу получить только часть .txt
. Как я могу достичь этого с помощью JQuery или javascript.
Любые предложения или ссылки будут благодарны!!!
Я хочу проверить тип загруженного файла. Если имя типа example.txt
, я хочу получить только часть .txt
. Как я могу достичь этого с помощью JQuery или javascript.
Любые предложения или ссылки будут благодарны!!!
Простое решение .split()
и .pop()
, чтобы получить последнюю строку в массиве, вот так:
var ext = fileName.split('.').pop();
Это приведет вас только к "txt"
без .
, просто добавьте, если необходимо. Это также работает, например: My.File.name.has.an extension.txt
. Если у него нет расширения, оно вернет имя файла, поэтому вы можете проверить это... или перейти в совершенно другое направление и проверить его на набор или известные расширения через регулярное выражение.
Используйте lastIndexOf() и substr():
function getFileExtension(name)
{
int found = name.lastIndexOf('.') + 1;
return (found > 0 ? name.substr(found) : "");
}
Обратите внимание, что эта реализация возвращает пустую строку, если имя файла не содержит символа периода (то есть не имеет расширения). Реализации, основанные на split(), иногда возвращают полное имя файла в этом случае.
Если вам нужно проверить несколько расширений:
var filename = "picture.jpg";
var valid_extensions = /(\.jpg|\.jpeg|\.gif)$/i;
if(valid_extensions.test(filename))
{
alert('OK');
}
else
{
alert('Invalid File');
}
Это устраняет необходимость в синтаксическом анализе строки, если вы хотите проверить расширение, например, перед загрузкой файла.
var text = 'example.txt',
ext = text.split('.')[1];
Слейте все имя файла. как разделитель. Разделение будет хранить разделенные элементы в массиве. Возьмите последний элемент массива.
if((document.form1.upload.value.lastIndexOf(".jpg")==-1) {
alert("Please upload only .jpg extention file");
return false;
}
lastIndexOf вернет индекс последнего вхождения указанного аргумента поиска. Если не найдено, -1 вернет
Ответ Frédéric работал хорошо для меня, однако функция продолжает выходить из строя в консоли Chrome с помощью "Неожиданного идентификатора". "Int" был выпущен, и эта модификация работала.
function getFileExtension(name){
var found = name.lastIndexOf('.') + 1;
return (parseInt(found) > 0 ? name.substr(found) : "");
}