JS получить имя фала из URL

116
25 декабря 2019, 04:30

Подскажите как получить название файла.

есть такая ссылка

http://utp/ViewerJS#../files/EducationalMaterials/K2/P2/соц%20пакет_обновл_за%202017-18.odp

надо получить красивое название файла

соц_пакет_обновл_за_2017-18.odp

делаю так. Это функция из ViewerJs (библиотека для просмотра ODF документов)

window.onload = function() {
                                var a = document.location.hash.substring(1),
                                    e = s(document.location),
                                    c;
                                a ? (e.title || (e.title = a.replace(/^.*[\\\/]/, '')), e.documentUrl = a, b(a, function(b) {
                                    b || (b = e.type ? f(e.type) : x(a));
                                    b ? "undefined" !== String(typeof loadPlugin) ? loadPlugin(b.path, function() {
                                        c = b.getClass();
                                        new Viewer(new c, e)
                                    }) : (c = b.getClass(), new Viewer(new c, e)) : new Viewer
                                })) : new Viewer
                            };`

получаю следующее

%D1%81%D0%BE%D1%86%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB_%D0%B7%D0%B0%202017-18.odp
Answer 1

Один из способов сделать вот так

function getFileNameFromUrl(url) { 
  return decodeURI(url.split('/').pop()); 
} 
const u = 'http://utp/ViewerJS#../files/EducationalMaterials/K2/P2/соц%20пакет_обновл_за%202017-18.odp'; 
console.log(getFileNameFromUrl(u));

Answer 2

let str = "http://utp/ViewerJS#../files/EducationalMaterials/K2/P2/соц%20пакет_обновл_за%202017-18.odp" 
let res = decodeURI(str.substring(str.lastIndexOf('/')+1,str.length)); 
console.log(res);

Answer 3

Немного доработал первый ответ

function getFileNameFromUrl(url) { 
  return decodeURI(url.split('/').pop()); 
} 
const u = 'http://utp/ViewerJS#../files/EducationalMaterials/K2/P2/соц%20пакет_обновл_за%202017-18.odp'; 
console.log(getFileNameFromUrl(u).replace(/\s/g, "_"));

Answer 4

Проблему решил так:

var a = decodeURI(document.location.hash.substring(1))
READ ALSO
Реализация поиска на странице с помощью фильтрации массива, не обращая внимания на раскладку клавиатуры VUE JS

Реализация поиска на странице с помощью фильтрации массива, не обращая внимания на раскладку клавиатуры VUE JS

Есть функция для поискаСейчас фильтрация идет по словам с соответствующей языковой раскладкой клавиатуры

125
Кастомизация компонента vue-select

Кастомизация компонента vue-select

Я использую компонент https://sagalbotgithub

131
select и hls.js

select и hls.js

Есть select и вывод трансляции при помощи html5 плеера и hlsjs

104