博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【javascript】利用 a 标签自动解析 url
阅读量:5838 次
发布时间:2019-06-18

本文共 1232 字,大约阅读时间需要 4 分钟。

很多时候,我们有从 url 中提取域名,查询关键字,变量参数值等的需求,然而我们可以让浏览器方便地帮助我们完成这一任务而不用写正则去抓取。方法就是先创建一个 a 标签然后将需要解析的 url 赋值给 a 的 href 属性,然后就得到了一切我们想要的了。

var a = document.createElement('a');a.href = 'http://zhuyujia.github.io/?a=1&b=2';console.log(a.host);  // zhuyujia.github.io

利用这一原理,稍微扩展一下,就得到了一个更加完整的解析 url 各部分的通用方法了。

function parseUrl(url) {    var a = document.createElement('a');    a.href = url;    return {        source: url,        protocol: a.protocol.replace(':', ''),        host: a.hostname,        port: a.port,        query: a.search,        params: (function() {            var ret = {},                seg = a.search.replace(/^\?/, '').split('&'),                len = seg.length,                i = 0,                s;            for (; i < len; i++) {                if (!seg[i]) {                    continue;                }                s = seg[i].split('=');                ret[s[0]] = s[1];            }            return ret;        })(),        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],        hash: a.hash.replace('#', ''),        path: a.pathname.replace(/^([^\/])/, '/$1'),        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],        segments: a.pathname.replace(/^\//, '').split('/')    };}

 

转载地址:http://jajcx.baihongyu.com/

你可能感兴趣的文章
华为云高校行·青岛站 | 区块链构建可信数字社会和美好生活
查看>>
LeetCode:374. Guess Number Higher or Lower
查看>>
.Net常用方法汇总-持续更新
查看>>
猫猫学IOS(二十五)UI之触摸事件
查看>>
深入理解javascript原型和闭包(2)——函数和对象的关系
查看>>
Android--httpclient模拟post请求和get请求
查看>>
常用命令|常用操作
查看>>
Qt部件之statusBar
查看>>
linux tar.gz zip 解压缩 压缩命令
查看>>
Android 线程
查看>>
4)线性表[顺序表和链表]
查看>>
laravel 带条件的分页查询
查看>>
贪心算法
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
eclipse及SQL Server2005配置
查看>>
Error creating bean with name“xxxxxxxxxxxx.service”
查看>>
C#--字母大小写转换
查看>>
ACM图灵奖现状以及得主及其分别分别的贡献
查看>>
docker 和 k8s 知识框架图
查看>>