2010-03-11 1 views
8

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

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

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

Мне просто нужно, чтобы получить "News.html" строка текста

Спасибо!

+1

Мне нравится решение TJ в – Alex

ответ

14

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

var file, n; 

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

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

+2

+1 Я впечатлен силой регулярного выражения, но я не могу их прочитать. –

3
var url = "http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3"; 
url = url.replace(/^.*\//, "").replace(/\?.*$/, ""); 

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

+0

Как примечание, делая window.location.replace (/^.*\//, "") .replace (/\?.*$/, ""); перенаправит вас. – contactmatt

5

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

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

Так,

var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1"); 
+0

Думаю, вам нужно сбежать от косых черт. :) –

+0

да, я понял - спасибо! – Pointy

+0

Ницца! Я никогда не знал о 'pathname'! –

0

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

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] || ''; 
} 
Смежные вопросы