Получить URL страницы, используя JavaScript - PullRequest
8 голосов
/ 11 марта 2010

Может ли кто-нибудь порекомендовать способ получения имени страницы из URL с использованием JavaScript?

Например, если у меня есть:

http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3

Мне просто нужно получить строку "news.html"

Спасибо!

Ответы [ 4 ]

14 голосов
/ 11 марта 2010

Вы можете сделать это довольно легко с помощью window.location.pathname анализа:

var file, n;

file = window.location.pathname;
n = file.lastIndexOf('/');
if (n >= 0) {
    file = file.substring(n + 1);
}
alert(file);

... или, как говорили другие, вы можете сделать это с помощью регулярного выражения в одной строке. Хорошим вариантом будет одна густо выглядящая строка, но с комментарием над ней.

5 голосов
/ 11 марта 2010

Я думаю, что это

window.location.pathname.replace(/^.*\/([^/]*)/, "$1");

Итак,

var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1");
3 голосов
/ 11 марта 2010
var url = "http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3";
url = url.replace(/^.*\//, "").replace(/\?.*$/, "");

Вы можете заменить url на window.location

0 голосов
/ 11 марта 2010

Вы также можете найти пути к файлам на локальном диске, и вы можете не захотеть включать в путь какой-либо хеш или получить строки-

String.prototype.fileName= function(){
 var f, s= this.split(/[#\?]/, 1)[0].replace(/\\/g,'/');
 s= s.substring(s.lastIndexOf('/')+ 1);
 f=  /^(([^\.]+)(\.\w+)?)/.exec(s) || [];
 return f[1] ||  '';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...