对于绝对 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/