如何将 URL 解析为 javascript 中的主机名和路径?

新手上路,请多包涵

我想拿一根绳子

var a = "http://example.com/aa/bb/"

并将其处理成一个对象,使得

a.hostname == "example.com"

a.pathname == "/aa/bb"

原文由 freddiefujiwara 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 946
2 个回答
var getLocation = function(href) {
    var l = document.createElement("a");
    l.href = href;
    return l;
};
var l = getLocation("http://example.com/path");
console.debug(l.hostname)
>> "example.com"
console.debug(l.pathname)
>> "/path"

原文由 freddiefujiwara 发布,翻译遵循 CC BY-SA 3.0 许可协议

现代方式:

 new URL("http://example.com/aa/bb/")

返回具有属性 hostnamepathname 以及 其他一些 属性的对象。

第一个参数是相对或绝对 URL;如果它是相对的,那么您需要指定第二个参数(基本 URL)。例如,对于相对于当前页面的 URL:

 new URL("/aa/bb/", location)

除了浏览器之外, 这个 API 在 Node.js 中也可用, 从 v7 开始,通过 require('url').URL

原文由 rvighne 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题