javascript - 如何在 JavaScript 中解析没有基本 URL 的相对 URL

标签 javascript

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

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

第三方库很好,但我更喜欢内置库和函数。更喜欢跨平台(浏览器/Node.js)解决方案。无需 IE。

最佳答案

这是一个很好的问题。目前,URL 标准不支持在不需要基础的情况下操作相对 URL。使用虚拟基址并不总是有效,因为带有点段(如 ../path)的相对 URL 将根据基址进行解析,而以后无法再次恢复它。不幸的是,URL 标准中没有考虑到这一点。尽管有一些讨论将其添加到 #531 .

同时,请查看reurl这是一个库,允许您操作相对 URL,而无需诉诸脆弱的手动字符串操作。

关于javascript - 如何在 JavaScript 中解析没有基本 URL 的相对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062301/

相关文章:

javascript - jQuery 改变 html 输入 onClick 的值

javascript - 如何在requirejs中加载angularjs?

javascript - 将 2 数组变成数组对象?

javascript - 使用 PHP 从数据库检索值、存储在输入文本和文本区域中、更改、将新值传递给数据库?

javascript - 如何获取上传文件的最后修改日期?

javascript - 将对象数组转换为数组数组(按属性)

javascript - 如何获取 JSONP 数据作为 javascript 对象

javascript - Protractor :WAITING自定义事件的最佳方式

javascript - 如何让 SpriteSpin 响应?

javascript - 如何从对象方法内的函数访问对象的属性?