2010-03-11 34 views
8

Ai đó có thể đề xuất cách lấy tên trang từ url bằng JavaScript?Nhận url trang bằng cách sử dụng javascript

Ví dụ nếu tôi có:

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

tôi chỉ cần để có được "news.html" chuỗi

Cảm ơn!

+1

Tôi thích giải pháp TJ của – Alex

Trả lời

14

Bạn có thể làm được điều này khá dễ dàng qua window.location.pathname phân tích cú pháp:

var file, n; 

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

... hoặc như những người khác đã nói, bạn có thể làm điều đó với một regexp trong một dòng. Một dòng khá dày đặc, nhưng với một bình luận ở trên nó, phải là một cách tốt để đi.

+2

+1 Tôi ấn tượng với sức mạnh của regex, nhưng tôi không đọc được. –

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

Bạn có thể thay thế url với window.location

+0

Là một lưu ý, làm window.location.replace (/^.*\//, "") .replace (/\?.*$/, ""); sẽ chuyển hướng bạn. – contactmatt

5

Tôi nghĩ đó là

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

Vì vậy,

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

Tôi nghĩ rằng bạn cần phải thoát khỏi dấu gạch chéo ở đó. :) –

+0

vâng tôi hiểu - cảm ơn !! – Pointy

+0

Rất tuyệt! Tôi không bao giờ biết về 'pathname'! –

0

Bạn có thể muốn cũng phải tìm đường dẫn tập tin trên đĩa cục bộ, và bạn có thể không muốn bao gồm bất kỳ băm hoặc nhận chuỗi trong 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] || ''; 
} 
Các vấn đề liên quan