需求
URL中包含传递的参数信息,我们需要获取到这些参数信息,以实现可展示不同信息的详情页加载,或其他用途。
例:输入http://www.mengjiecui.com/?lx=1&name=JS&from=baidu#video
,最终获得一个对象{lx:1,name:"JS",from:"baidu",HASH:"video"}
。
我们可以看到,在url中,?
后包含多个xxx=xxx
这样的参数信息,中间用&
隔开,#
后则保存hash值(只有一个),我们需要做的就是将它们提取出来以便后续处理。
思路
- 获取
?
和#
后的值 - 将获取到的结果进行解析,拼成一个对象,然后返回。
方法一
function queryURLParams(url){
// 获得?和#在字符串中的索引
let askIndex = url.indexOf("?"),
polIndex = url.indexOf("#");
// 截取?和#后的字符串
let askText = url.substring(askIndex+1,polIndex),
polText = url.substring(polIndex+1);
// 创建一个空对象
let obj = {};
// 处理hash值
pol