Я мог запускать свой планшет (Android) и смартфон (android) в соответствии с приведенной ниже процедурой:
apt-get update
apt-get install python3
apt-get install python3-setuptools
easy_install3 pip
pip install django
django-admin startproject demo
cd demo
python manage.py runserver
Более новое Редактирование: Партии вещей изменились, так как этот вопрос был первоначально отправлен - существует большая действительно хорошая информация в пересмотренный ответ wallacer , а также превосходная разбивка VisioN
<час>Редактирование: Просто, потому что это - принятый ответ; ответ wallacer действительно намного лучше:
return filename.split('.').pop();
<час> Мой старый ответ:
return /[^.]+$/.exec(filename);
Должен сделать это.
Редактирование: В ответ на комментарий PhiLho, используйте что-то как:
return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined;
function extension(fname) {
var pos = fname.lastIndexOf(".");
var strlen = fname.length;
if (pos != -1 && strlen != pos + 1) {
var ext = fname.split(".");
var len = ext.length;
var extension = ext[len - 1].toLowerCase();
} else {
extension = "No extension found";
}
return extension;
}
//использование
расширение ('file.jpeg')
всегда возвраты расширение понижает аварию, таким образом, можно проверить, что это на поле изменяет работы для:
файл. Файл JpEg
(никакое расширение)
файл. (noextension)
Я просто понял, что недостаточно поместить комментарий к ответу p4bl0, хотя ответ Tom ясно решает проблему:
return filename.replace(/^.*?\.([a-zA-Z0-9]+)$/, "$1");
function file_get_ext(filename)
{
return typeof filename != "undefined" ? filename.substring(filename.lastIndexOf(".")+1, filename.length).toLowerCase() : false;
}
return filename.replace(/\.([a-zA-Z0-9]+)$/, "$1");
редактирование: Странно (или возможно это не), $1
во втором аргументе метода замены, кажется, не работает... Извините.
function getFileExtension(filename)
{
var ext = /^.+\.([^.]+)$/.exec(filename);
return ext == null ? "" : ext[1];
}
Протестированный с
"a.b" (=> "b")
"a" (=> "")
".hidden" (=> "")
"" (=> "")
null (=> "")
Также
"a.b.c.d" (=> "d")
".a.b" (=> "b")
"a..b" (=> "b")
var parts = filename.split('.');
return parts[parts.length-1];
function func() {
var val = document.frm.filename.value;
var arr = val.split(".");
alert(arr[arr.length - 1]);
var arr1 = val.split("\\");
alert(arr1[arr1.length - 2]);
if (arr[1] == "gif" || arr[1] == "bmp" || arr[1] == "jpeg") {
alert("this is an image file ");
} else {
alert("this is not an image file");
}
}
return filename.split('.').pop();
Не усложняйте :)
Изменить:
Это еще одно решение без регулярных выражений, которое я считаю более эффективным:
return filename.substring(filename.lastIndexOf('.')+1, filename.length) || filename;
Есть некоторые угловые случаи, с которыми лучше справиться Ответ VisioN ниже, в частности файлы без расширения ( .htaccess
и т. Д.).
Он очень эффективен и обрабатывает угловые случаи, возможно, лучше, возвращая » "
вместо полной строки, если перед точкой нет точки или строки. Это очень хорошо продуманное решение, хотя и трудное для чтения. Вставьте его в свою библиотеку помощников и просто используйте.
Старое редактирование:
Более безопасная реализация, если вы собираетесь столкнуться с файлами без расширения или с скрытыми файлами без расширения (см. Комментарий VisioN к Тому: s ответ выше) будет что-то вроде этих строк
var a = filename.split(".");
if( a.length === 1 || ( a[0] === "" && a.length === 2 ) ) {
return "";
}
return a.pop(); // feel free to tack .toLowerCase() here if you want
Если a.length
равно единице, это видимый файл без расширения, т.е. файл
Если a [0] === ""
и a.length === 2
, это скрытый файл без расширения, т.е. .htaccess
Надеюсь, это поможет прояснить проблемы с немного более сложными случаями. Что касается производительности, я считаю, что это решение немного медленнее, чем регулярное выражение в большинстве браузеров. Однако для наиболее распространенных целей этот код должен идеально подходить.
htaccessНадеюсь, это поможет прояснить проблемы с чуть более сложными случаями. Что касается производительности, я считаю, что это решение немного медленнее, чем регулярное выражение в большинстве браузеров. Однако для наиболее распространенных целей этот код должен идеально подходить.
htaccessНадеюсь, это поможет прояснить проблемы с чуть более сложными случаями. Что касается производительности, я считаю, что это решение немного медленнее, чем регулярное выражение в большинстве браузеров. Однако для наиболее распространенных целей этот код должен идеально подходить.
В браузере существует собственный API для типов пантомимы. File.type - веб-API | MDN
к вашему сведению, если Вы хотите ограничить типы файлов для попытки загрузок accept
атрибуты. Можно отфильтровать список файлов окна файла пользователя. входной тип = "файл" | MDN
Я знаю, что это - старый вопрос, но я записал эту функцию с тестами для извлечения расширения файла и ее доступный с NPM, Пряжей, Битом.
, Возможно, это поможет кому-то.
https://bit.dev/joshk/jotils/get-file-extension
function getFileExtension(path: string): string {
var regexp = /\.([0-9a-z]+)(?:[\?#]|$)/i
var extension = path.match(regexp)
return extension && extension[1]
}
Вы видите тесты, которые я записал здесь .