逐个访问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高级程序设计第三版》

时间: 2024-10-15 12:46:29

逐个访问URL的每个查询字符串参数的相关文章

c#获取url中的查询字符串参数

/// <summary> /// 获取url中的查询字符串参数 /// </summary> public static NameValueCollection ExtractQueryParams(string url) { int startIndex = url.IndexOf("?"); NameValueCollection values = new NameValueCollection(); if (startIndex <= 0) ret

location对象查询字符串参数

虽然location.search可以返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数.为此,可以创建下面这样一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象: 1 function getQueryStringArgs(){ 2 //取得查询字符串并去掉开头的问号 3 var qs = (location.search.length > 0 ? location.search.substring(1) : ""); 4 //保存数据的对

js获取url查询字符串参数

最近看js高级程序设计 对其中查询字符串参数的获得重新写了,当传递一个完整的URL的时候对查询字符串的提取 function getQueryArgs(){ var qs = (location.search.length > 0 ? location.search.substr(1) : ''), //保存每一项 args = {}, //得到每一项 items = qs.length ? qs.split('&') : [], item = null, name = null, valu

解析URL查询字符串参数为对象

高程3使用拼接字符串形式解析的查询字符串,网上有各种正则方式解析的,记得太多,临时需要写的时候,自己都搞混乱了.只记一种吧,用正则. function getQueryStringArgs() { var search = (location.search.length > 0 ? location.search.slice(1) : ""); var obj = {}; var reg = /([^?&=]+)=([^?&=]*)/g; search.repla

javascript查询字符串参数

/* 解析查询字符串 返回包含所有参数的一个对象 */ function getQueryStringArgs(){ //取得查询字符串并去掉开头的问号 var qs = (location.search.length > 0 ? location.search.substring(1) : ''); //保存数据的对象 args = {}; //取得每一项 var items = qs.length ? qs.split('&') : [], item = null, name = nul

location对象-解析URL查询字符串参数

function getQueryStringArgs(){ var qs=(location.search.length>0?location.search.substring(1):""), args={}, items=qs.length?qs.split("&"):[], item=null,name=null,value=null,i=0; for(i=0;i<items.length;i++){ item=items[i].split

获取url指定的查询字符串

//去掉首字母 ? 号 var search = location.search.slice(1); //使用&符号劈开 得到每一个key = val var searchArr = search.split('&'); var tempArr = null; var searchObj = {}; //遍历数组中的每一个key = val字符串 使用=号劈开 //然后以key为名,val为值添加到searchObj对象中. for( var i = 0,len = searchArr.l

js根据url查询字符串里的键名获取其值

先来运行结果 下面是页面代码 testJsGetUrlAttribute.html <script> var rout = getUrlAttribute('rout'); if(null!=rout) { alert(rout); } /** * 20150514 14:30 * 作者:Ro * 根据url查询字符串里的键名获取其值 */ function getUrlAttribute(parameName) { //location.search是从当前URL的?号开始的字符串,即查询字

ElasticSearch查询字符串

简易搜索 search API有两种表单:一种是"简易版"的查询字符串(query string)将所有参数通过查询字符串定义,另一种版本使用JSON完整的表示请求体(request body),这种富搜索语言叫做结构化查询语句(DSL) 查询字符串搜索对于在命令行下运行点对点(ad hoc)查询特别有用.例如这个语句查询所有类型为tweet并在tweet字段中包含elasticsearch字符的文档: GET /_all/tweet/_search?q=tweet:elasticse