利用a标签的href属性拿到请求路径中的请求参数和哈希值

<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>
原文地址:https://www.cnblogs.com/menggege/p/14173429.html