一行代码实现 url parse

发布于 2021-11-23 12:50:44 字数 1267 浏览 1073 评论 0

实现

解析 url 的各个部分:

http://domain/path/to/?querystring#hash

普通的方法是使用正则来进行匹配,而在前端可以这样:

var parseURL = (function () {
    var a = document.createElement('a');

    /**
     * 解析 url
     * @returns {Object}
     */
    return function (url) {
        a.href = url;

        return {
            protocol: a.protocol,
            host: a.host,
            hostname: a.hostname,
            pathname: a.pathname,
            search: a.search,
            hash: a.hash
        };
    };
}());

测试

parseURL('http://FrontEndDev.org/path/to/?querystring#hash')
// => {"protocol":"http:","host":"frontenddev.org",
"hostname":"frontenddev.org","pathname":"/path/to/",
"search":"?querystring","hash":"#hash"}

原理

A 标签的各个 property 包含了 url parse 的结果信息。同样的,也可以创建一个空的 iframe 来操作它的 contentWindow.location 来实现。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

鹤舞

暂无简介

0 文章
0 评论
603 人气
更多

推荐作者

文章 0 评论 0

云雾

文章 0 评论 0

夏尔

文章 0 评论 0

alipaysp_yxYxYl56FW

文章 0 评论 0

涙—继续流

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文