在javascript中获取绝对路径

时间:2011-12-06 14:54:56

标签: javascript html

你能在html中获得绝对路径。

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

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

谢谢!

6 个答案:

答案 0 :(得分:5)

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

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

上面只给出了最后一部分。例如,如果您在http://somedomain/somefolder/filename.html,它将为您提供filename.html

答案 1 :(得分:4)

对于此页面,如果您检查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];

答案 2 :(得分:3)

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

答案 3 :(得分:0)

试试这个:

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

答案 4 :(得分:0)

或者如果您需要从协议到最后'/'的所有内容,您可以使用:

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

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

答案 5 :(得分:0)

// "http://localhost:8080/public/help/index.html"
const loc = window.location.href;

// "http://localhost:8080/public/help/"
const path = loc.substr(0, loc.lastIndexOf('/') + 1);