queryURLParams

  1. 网址的拆分及获取
    <script>
        function queryURLParams(url){
            let askIndex=url.indexOf('?'),
                polIndex=url.lastIndexOf('#'),
                askText='',
                polText='';
            //#号不存在
            polIndex===-1?polIndex=url.length:null;
            polText=url.substring(polIndex+1);
            if(askIndex>-1){
                askText=url.substring(askIndex+1,polIndex);
            }
            let obj={};   
            polText.length>0?obj['HASH']=polText:null;
            if(askText){
                askText.split('&').forEach(item=>{
                    let arr=item.split('='),
                    key=arr[0],
                    value=arr[1];
                    obj[key]=value;
                });
            }
            return obj;
        }
        let result=queryURLParams('http://www.baidu.com/?lx=1&name=JS&from=baidu#video');
        console.log(result);
    </script>
  1. 创建A标签的形式
    <script>
        function queryURLParams(url){
            //1.创建A标签来获取问号参数和哈希值
            let link=document.createElement('a');
            link.href=url;
            let askText=link.search.substr(1),
                polText=link.hash.substr(1);
            let obj={};
            //2.向对象中进行存储
            polText?obj['HASH']=polText:null;
            if(askText){
                let arr=askText.split(/(?:&|=)/g);
                for(let i=0;i<arr.length;i+=2){
                   obj[arr[i]]=arr[i+1];  //属性名和属性值
                }
            }
            return obj;
        }
         let result=queryURLParams('http://www.baidu.com/?lx=1&name=JS&from=baidu#video');
        console.log(result);
    </script>

效果图:
在这里插入图片描述

  1. 正则
    <script>
        (proto=>{
            function queryURLParams(){
                let obj={};
                this.replace(/([^?=&#]+)=([^?=&#]+)/g,(_,key,value)=>obj[key]=value);
                this.replace(/#([^?&=#]+)/g,(_,hash)=>obj['HASH']=hash);
                return obj;
            }
            proto.queryURLParams=queryURLParams;
        })(String.prototype);
        console.log('http://www.baidu.com/?lx=1&name=JS&from=baidu#video'.queryURLParams());
    </script>

效果图如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值