<script>
function queryUrl(str){//封装一个方法
let link = document.createElement('a')//创建一个a标签,这里我们不需要添加到页面上。
link.href=str//给a标签的href属性赋值。我们要截取的那个路径
let obj={}
let search = link.search.substr(1)//利用a标签的serach属性拿到?号后面的请求参数,并且用substr截取,只要?号后面的参数
let hash = link.hash.substr(1)//利用a标签的hash属性拿到#号后面的请求参数,并且用substr截取,只要#号后面的参数
hash?obj.hash=hash:''//判断有没有这个hash值,有就放在obj里,没有就啥也不干
if(search){//判断有没有search
search = search.split('&')//先用&截取一下,他就会变成一个数组:["name=xiaopi", "age=20", "sex=%E5%A5%B3"]
for(let i=0;i<search.length;i++){//然后遍历这个数组,分别截取它每一项里面的“=”号:
console.log(search[i])//name=xiaopi、age=20、sex=%E5%A5%B3
let item = search[i].split('=')//截取“=”号,结果是:
console.log(item)//["name", "xiaopi"]、["age", "20"]、 ["sex", "%E5%A5%B3"]
obj[item[0]]=item[1] //然后给obj赋值。就是截取后的每一项的下标为0的是对象的属性,下标为1的为下标为0的属性的值
}
}
return obj//最后把obj返回就行了。
}
let url = "http://www.baidu.com/type?name=xiaopi&age=20&sex=女#程序员"
console.log(queryUrl(url))
</script>