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

2022-08-29 23:11:52

我想拿一根绳子

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

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

a.hostname == "example.com"

a.pathname == "/aa/bb"

答案 1

现代方式:

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

返回一个具有属性 和 的对象,以及其他几个对象hostnamepathname

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

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

除了浏览器之外,此 API 在 Node.js 自 v7 起也可通过 。require('url').URL


答案 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"