逐个访问URL的每个查询字符串参数

Posted 浅岸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逐个访问URL的每个查询字符串参数相关的知识,希望对你有一定的参考价值。

  下面介绍一个函数,用于处理location.search的结果,以解析查询字符串,然后返回包含所有参数的一个对象。

  比如  www.baidu.com?q=javascript&num=10 的访问地址,

            其中location.search 查询字符串为 ?q=javascript&num=10 ,

            解析后的结果为对象 {q:"javascript", num: 10},然后就可以通过对象的访问,取得每一个查询参数值。具体实现如下:

        function getQueryStringArgs() {
            var qs = (location.search.length > 0 ? location.search.substring(1) : ""), //取得查询字符串并去掉开头的问号
                args = {}, //保存数据的对象
                items = qs.length ? qs.split("&") : [], //根据和号(&)来分割查询字符串,并返回name=value 格式的字符串数组
                item = null,
                name = null,
                value = null,
                i = 0,
                len = items.length;

            //逐个将每一项添加到args 对象中
            for (i = 0; i < len; i++) {
                item = items[i].split("=");
                name = decodeURIComponent(item[0]);
                value = decodeURIComponent(item[1]);
                if (name.length) {
                    args[name] = value;
                }
            }
            return args;
        }

下面给出了使用这个函数的示例:

        //假设查询字符串是?q=javascript&num=10
        var args = getQueryStringArgs();
        console.log(args["q"]); //"javascript"
        console.log(args["num"]); //"10"

 

文章参考自《JavaScript高级程序设计第三版》

以上是关于逐个访问URL的每个查询字符串参数的主要内容,如果未能解决你的问题,请参考以下文章

URL 片段中的多个参数

如何在页面加载时处理辅助bean中的GET查询字符串URL参数?

Tornado 下一个查询字符串 URL 参数

访问VBA参数查询将整数更改为字符串

使用 AWS API Gateway 访问原始 URL

如何在页面加载时处理支持 bean 中的 GET 查询字符串 URL 参数?