2011-12-06 179 views
2

您能否在html中获得绝对路径。在javascript中获取绝对路径

如果我使用location.href我可以得到的网址,但我如何修剪filename.html?

有没有更好的方法来获得路径。

谢谢!

+0

给自己一个JavaScript引用:[MDN window.location](https://developer.mozilla.org/en/DOM/window.location) – epascarello

回答

4

location.pathname为您提供网址的本地部分。

location.pathname.match(/[^\/]+$/)[0]只给你最后一部分。如果你是http://somedomain/somefolder/file.html - 它会给你file.html

+1

在比赛结束后添加一个'[0]',以便提取实际价值。否则,你以一串匹配结束(*在本例中只有一个*) –

+0

没错。谢谢! –

2
var full = location.pathname; 
var path = full.substr(full.lastIndexOf("/") + 1); 
3

对于这个页面,如果你检查window.location对象,你会看到

hash:  
host:  stackoverflow.com 
hostname: stackoverflow.com 
href:  http://stackoverflow.com/questions/8401879/get-absolute-path-in-javascript 
pathname: /questions/8401879/get-absolute-path-in-javascript 
port:  
protocol: http: 
search:  

Documentation at MDN

所以location.pathname是你想要的。如果你想提取最后一部分使用正则表达式。

var lastpart = window.location.pathname.match(/[^\/]+$/)[0]; 
0

试试这个:

var loc = window.location.href; 
var fileNamePart = loc.substr(loc.lastIndexOf('/') + 1); 
0

或者,如果你需要的一切,从协议到最后 '/',你可以使用:

new RegExp('[^?]+/').exec(location.href) 

,不要担心它会匹配第一个'/'是因为'+'是一个贪婪的量词,这意味着它会尽可能地匹配它。第一部分'[^?]'是在参数之前停止匹配,因为'/'可能出现在像t.php?param1=val1/val2这样的参数值中。