Как вытащить файл из URL?

329
13 февраля 2017, 16:09

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

http://misite.ru/sites/default/files/styles/760_______/public/62242.jpg?itok=cQO_3H5R

Думаю надежный способ извлечения файла из строки следующий:

Файл всегда заканчивается на .jpg мне как то извлечь часть строки, от /(не включая) до .jpg (включительно), которая и будет моим файлом 62242.jpg.

но не знаю как это кодом реализовать.

Answer 1

Делим по /, берём последнюю часть.
Делим по ?, берём первый элемент результата.

При отсутствии ?query части, split всё равно вернёт массив с одним элементом.

[ 
'http://misite.ru/sites/default/files/styles/760_______/public/62242.jpg?itok=cQO_3H5R', 
'http://misite.ru/sites/default/files/styles/760_______/public/62242.jpg', 
].forEach(url => { 
  console.log(url.split('/').pop().split('?')[0]); 
})

Answer 2
var pos1 = pathstr.lastIndexOf("/"); 
var pos2 = pathstr.lastIndexOf(".jpg"); 
var filename = ""; 
if ( ( pos1 >= 0 ) && ( pos2 > 0 ) && ( pos2 > pos1 ) ) { 
  filename = pathstr.substring(pos1+1,pos2+3);
} 
READ ALSO
Радио кнопки отображаются в Safari как чекбоксы

Радио кнопки отображаются в Safari как чекбоксы

Есть форма, в которой имеются радио кнопкиЭти радио кнопки на мобильном сафари отображаются как чекбоксы (а выбранные радио кнопки отображаются...

253
Как нарисовать знак “Х” с помощью SVG и CSS?

Как нарисовать знак “Х” с помощью SVG и CSS?

Мне нужно создать анимацию знака "Х" для отказа от действий

327
SVG - анимация из средней точки на всю ширину

SVG - анимация из средней точки на всю ширину

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

432