美文网首页
url地址栏参数的截取以及处理中文乱码问题

url地址栏参数的截取以及处理中文乱码问题

作者: 洛禾sunshime | 来源:发表于2019-04-28 10:38 被阅读0次

url截取及其处理中文乱码问题:

 // 获取url地址栏的参数
    function GetRequest() {
        //首先获取到当前页面的地址栏信息
        var url = window.location.href;//获取url地址
        var obj = {};//待会用来存放参数的对象
        var reg = /\?/;//匹配从?截取
        if(url.match(reg)) {
            //判断传入参数,以问号截取,问号后是参数
            var chars = url.split('?')[1];
            var arr = chars.split('&');//截取&号
            //获得截取后的数组为键值对字符串
            for (var i = 0; i < arr.length; i++) {
                //保守一点确定看是否为 name=value形式
                var num = arr[i].indexOf("=");
                if (num > 0) {
                    //拼接字符串
                    var name = arr[i].substring(0, num);
                    var value = arr[i].substr(num + 1);
                    //拼接对象,并转码
                    obj[decodeURIComponent(name)] = decodeURIComponent(value);
                }
            }
        }
        return obj;
    }

效果图:

普通截取url地址参数

只有一个参数时:


image.png
一个参数.png

拿到的结果:


拿到的结果.png

多个参数:


image.png
多个参数.png

拿到的结果:


结果.png

封装的方法如下:可以同时实现拿一个参数或者拿多个多个参数


image.png
<script>
        // console.log(location.href)

        // 获取url地址栏的参数
        function GetRequest(url) {
            var theRequest = new Object();
            if (url.indexOf("?") != -1) {
                var str = url.substr(1);
                let strs = str.split("?");
                // console.log(strs)
                strs = strs[1].split("&");
                for (var i = 0; i < strs.length; i++) {
                    theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
                }
            }
            return theRequest;
        }
        let url = GetRequest(location.href);
        console.log(url)
    </script>

相关文章

网友评论

      本文标题:url地址栏参数的截取以及处理中文乱码问题

      本文链接:https://www.haomeiwen.com/subject/njarnqtx.html