“一群程序员下班前又开始聚在一起Yy了”
写在前面:今天工作有点迟了,但每日一更的规矩不能破坏,今天就少写一点,话说要不要关注一下?
今日内容:快速解析url
在我们做项目的过程中,有时候会遇上解析一大串url字符串,从中取一些参数,那么你平时怎么来获取这些参数呢?正则?或者是?
今天,我就来教你们怎么快速解析一个url字符串,首先,我们创建一个a节点:
vardom=document.createElement('a');
然后我们将这个节点的href属性设为要解析的url字符串:
dom.href='要解析的字符串';
这个时候我们来输出一下dom【 注意下图我用的是console.dir() 】:
我们经常需要的hostname[主机名],hash[哈希],path[路径],query[查询参数],protocol[协议]都在这里边了,唯一不足之处是没有键值对形式的params,但也不是很复杂了,下面就放出我平时使用的一个封装好的url解析方法吧:
/**
*@name: resolution url
*@version:1.0.0
*@author: Aile
* @github : https://github.com/ailewl/reURL/
* @Explain site : https://ailewl.github.io/reURL/#/
**/
functionURLRes() {
this.myUrl=this.getMyUrl();
this.fromUrl=this.getFromUrl()
}
varmy=document.createElement('a');
my.href=document.URL;
return{
url:my.href,
hostname:my.hostname,
path:my.pathname.replace(/^([^\/])/,'/$1'),
query:my.search,
params: (function() {
varret={},
seg=my.search.replace(/^\?/,'').split('&'),
len=seg.length,
i=,
s;
for(;i
if(!seg[i]) {
continue;
}
s=seg[i].split('=');
ret[s[]]=s[1];
}
returnret;
})()
}
}
varFrom=document.createElement('a');
From.href=document.referrer;
return{
url:From.href,
hostname:From.hostname,
path:From.pathname.replace(/^([^\/])/,'/$1'),
query:From.search,
params: (function() {
varret={},
seg=From.search.replace(/^\?/,'').split('&'),
len=seg.length,
i=,
s;
for(;i
if(!seg[i]) {
continue;
}
s=seg[i].split('=');
ret[s[]]=s[1];
}
returnret;
})()
}
}
My Lover Is 404
领取专属 10元无门槛券
私享最新 技术干货