一尘不染

JavaScript-获取部分URL路径

javascript

使用JavaScript从URL中仅提取路径的正确方法是什么?

但我只想获得 / account / search 这部分

我正在使用jQuery,如果有可以利用的地方。


阅读 321

收藏
2020-05-01

共1个答案

一尘不染

内置window.location对象的一个属性将为当前窗口提供该属性。

// If URL is http://www.somedomain.com/account/search?filter=a#top

window.location.pathname // /account/search

// For reference:

window.location.host     // www.somedomain.com (includes port if there is one)
window.location.hostname // www.somedomain.com
window.location.hash     // #top
window.location.href     // http://www.somedomain.com/account/search?filter=a#top
window.location.port     // (empty string)
window.location.protocol // http:
window.location.search   // ?filter=a

更新,对任何URL使用相同的属性:

事实证明,此模式已被标准化为称为 URLUtils的接口,您猜怎么着?现有window.location对象 和锚元素均 实现该接口。

因此,您可以对 任何 URL 使用与上面相同的属性 -只需使用URL创建锚并访问属性:

var el = document.createElement('a');
el.href = "http://www.somedomain.com/account/search?filter=a#top";

el.host        // www.somedomain.com (includes port if there is one[1])
el.hostname    // www.somedomain.com
el.hash        // #top
el.href        // http://www.somedomain.com/account/search?filter=a#top
el.pathname    // /account/search
el.port        // (port if there is one[1])
el.protocol    // http:
el.search      // ?filter=a

这可以在最新版本的Chrome和Firefox中使用 。我没有要测试的Internet
Explorer版本,因此请使用JSFiddle示例进行测试。

还有一个即将到来的URL对象,它将提供对URL本身的支持,而没有anchor元素。目前似乎尚无稳定的浏览器支持它,但据说它已在Firefox26中提供。

2020-05-01