【问题标题】:Is JavaScript able to to parse arbitrary URLs the same way the current URL is parsed in windows.location?JavaScript 是否能够像在 windows.location 中解析当前 URL 一样解析任意 URL?
【发布时间】:2012-08-14 01:32:47
【问题描述】:

我喜欢当前地址在window.location 中被很好地拆分为多个部分,但我希望能够采用任意 URL 并按照完全相同的逻辑将其拆分。我不知道window.location 如何处理极端情况和罕见情况,所以我想尽可能避免手动执行此操作。由于浏览器已经在当前地址上执行这项工作,我希望它包含一个可以对 any 地址执行此操作的函数。

如果有任何不错的跨浏览器库(可能是 jQuery 插件),我也很想听听。

【问题讨论】:

标签: javascript jquery uri url-parsing


【解决方案1】:

使用 Xander 的回答中的信息,我编写了一个小函数来解析 URL 并返回一个包含所需信息的对象。我想我会在这里分享它:

function parse_url(url)
{
    var e = document.createElement('a');
    e.href = url;

    return {
        'protocol': e.protocol,
        'hostname': e.hostname,
        'host': e.host,
        'port': e.port,
        'pathname': e.pathname,
        'search': e.search,
        'hash': e.hash
    }
}

【讨论】:

    【解决方案2】:

    您可以在 JavaScript 中创建一个 aHTML 锚元素)元素并指定 href 属性。然后,您将能够调用与锚元素关联的属性,hashprotocolhostport 等...

    https://developer.mozilla.org/en-US/docs/DOM/HTMLAnchorElement

    【讨论】:

    • 用法示例:linkrelated question
    • 好用!顺便说一句,我的用例已经在处理锚标签的href 属性,所以这是一个完美的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2011-08-01
    • 2011-10-02
    • 2022-01-03
    • 2014-10-14
    • 2016-10-22
    相关资源
    最近更新 更多