在JavaScript中,如果没有基本URL,如何解析相对URL

在JavaScript中,如果没有基本URL,如何解析相对URL,javascript,Javascript,对于绝对URL,我们可以使用新URL(str)进行解析;对于带有基本URL的相对URL,我们可以有新URL(路径,基本)。如何解析没有基URL的相对URL?例如,folder/file.ext?a=1&b=2#hash应该解析为 { pathname: "folder/file.ext", search: "?a=1&b=2", hash: "#hash" } 第三方库很好,但我更喜欢内置库和函数。首选跨平台(browser/Node.js)解决方案。不需要IE

对于绝对URL,我们可以使用
新URL(str)
进行解析;对于带有基本URL的相对URL,我们可以有
新URL(路径,基本)
。如何解析没有基URL的相对URL?例如,
folder/file.ext?a=1&b=2#hash
应该解析为

{
    pathname: "folder/file.ext",
    search: "?a=1&b=2",
    hash: "#hash"
}

第三方库很好,但我更喜欢内置库和函数。首选跨平台(browser/Node.js)解决方案。不需要IE。

如果您知道相对URL的参数大致是什么样的,这意味着您的标识符“?”和“#”是唯一的,您可以使用基本JS,只需拆分相对URL字符串,将您自己的JSON对象与从中获得的数据缝合在一起。

为什么不在字符串之前附加
www.example.com/
,并对其进行解析…您可以使用
新URL('folder/file.ext?a=1&b=2#hash','http://dummy');
作为一种解决方法。如果您知道相对URL的参数大致是什么样的,这意味着您的标识符“?”和“#”是唯一的,您可以使用基本JS,只需拆分相对URL字符串,将您自己的JSON对象与从中获得的数据缝合在一起。感谢大家的快速响应。这似乎是一个愚蠢的问题;请创建一个答案,这样我就可以给任何人评分并完成这个问题。(或者我应该完全删除这个问题吗?