你能在html中获得绝对路径。
如果我使用location.href我可以获取网址,但我如何修剪filename.html?
有没有更好的方法来获得路径。
谢谢!
答案 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:
所以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);