Как вытащить имя файла из URL с помощью javascript / jquery? - PullRequest
32 голосов
/ 19 августа 2009

Определенная переменная может содержать относительный путь или абсолютный путь. В любом случае мне нужно иметь возможность извлечь имя файла из переменной:

http://www.somesite.com/dir1/dir2/filename.gif
/dir1/dir2/filename.gif

Структура каталогов также произвольна. Таким образом, в основном, учитывая любой из приведенных выше URL (со структурой каталогов arbirtrary), мне нужно вытащить «filename.gif». Заранее спасибо

Ответы [ 15 ]

55 голосов
/ 20 августа 2009
var index = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(index);
26 голосов
/ 20 августа 2009

Короткий путь

var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
11 голосов
/ 20 августа 2009
var filename = url.match(/.*\/(.*)$/)[1];
7 голосов
/ 26 сентября 2014
var filename= url.split('/').pop()
6 голосов
/ 20 августа 2009

Я бы использовал регулярное выражение.

[^/]*$

Выбирает все после последней косой черты до конца. Вы можете расширить его, чтобы выбрать расширение отдельно:

/([^/]*?)(\.[^\./]*)?$
5 голосов
/ 06 января 2010
var path = window.location.pathname;
var filename = path.match(/.*\/([^/]+)\.([^?]+)/i)[1];

Используйте это в том случае, если вы не хотите, чтобы строка запроса была частью вашего имени файла (что вы, вероятно, не).

3 голосов
/ 20 октября 2012
var URL = window.location.pathname; // Gets page name
var page = URL.substring(URL.lastIndexOf('/') + 1);  
alert(page);
2 голосов
/ 11 февраля 2019

Я решил эту проблему следующим образом:

var URL = window.location.pathname; // Gets page name
var page = URL.substring(URL.lastIndexOf('/') + 1); 
// then display your filename to console
console.info(page)
2 голосов
/ 20 августа 2009

Для ваших примеров, поиск по подстроке, вероятно, будет вашим лучшим вариантом.

Однако, если ваши URI достаточно сложны, вы можете попробовать parseUri Стивена Левитана:

parseUri(uri).file;

У него 2 режима, и у каждого есть свои причуды, поэтому обязательно ознакомьтесь с демонстрацией .

2 голосов
/ 20 августа 2009
// Extract filename from current page.
var filePath = window.location.pathname;
var fileName = filePath.substr(urlPath.lastIndexOf("/") + 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...