Как вытянуть имя файла от URL с помощью javascript/jquery?

Я должен сказать, собираетесь ли Вы быть соединением с той областью на странице..., такой как страница html#foo, и Заголовок Нечто не является ссылкой, которую необходимо использовать:

<h1 id="foo">Foo Title</h1>

, Если Вы вместо этого помещаете <a> ссылка вокруг этого, Ваш заголовок будет под влиянием <a> определенный CSS на Вашем сайте. Это - просто дополнительная разметка, и Вам не должен быть нужен он. Я настоятельно рекомендовал бы размещение идентификатора на заголовке, мало того, что это лучше формируется, но и это позволит Вам или обращаться к тому объекту в JavaScript или CSS.

33
задан 19 August 2009 в 19:59
поделиться

8 ответов

var index = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(index);
57
ответ дан 27 November 2019 в 17:27
поделиться

Используйте регулярное выражение, что-то вроде этих строк должно помочь:

[^/]+\.[^/]+

Хотя это не охватывает все возможные случаи, оно должно быть более чем подходящим для большинства случаев. Вы можете использовать их:

var url = window.location.href;
var regex = new RegExp("[^/]+\.[^/]+");
var fileName = regex.exec(url);

Надеюсь, что это поможет

1
ответ дан 27 November 2019 в 17:27
поделиться
// Extract filename from current page.
var filePath = window.location.pathname;
var fileName = filePath.substr(urlPath.lastIndexOf("/") + 1);
2
ответ дан 27 November 2019 в 17:27
поделиться
var filename = url.match(/.*\/(.*)$/)[1];
11
ответ дан 27 November 2019 в 17:27
поделиться

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

[^/]*$

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

/([^/]*?)(\.[^\./]*)?$
6
ответ дан 27 November 2019 в 17:27
поделиться

Более короткий путь

var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
26
ответ дан 27 November 2019 в 17:27
поделиться

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

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

parseUri(uri).file;

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

2
ответ дан 27 November 2019 в 17:27
поделиться
var path = window.location.pathname;
var filename = path.match(/.*\/([^/]+)\.([^?]+)/i)[1];

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

.
5
ответ дан 27 November 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: