location对象查询字符串参数

虽然location.search可以返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。为此,可以创建下面这样一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:

 1 function getQueryStringArgs(){
 2     //取得查询字符串并去掉开头的问号
 3     var qs = (location.search.length > 0 ? location.search.substring(1) : "");
 4     //保存数据的对象
 5     var args = [];
 6     //取得每一项
 7     var items = qs.length ? qs.split("&") : [];
 8     var item = null;
 9     var name = null;
10     var value = null;
11     //逐个将每一项添加到args对象中
12     for(var i=0;i< items.length;i++){
13         item = items[i].split("=");
14         name = decodeURIComponent(item[0]);
15         value = decodeURIComponent(item[1]);
16         if(name.length){
17             args[name] = value;
18         }
19     }
20     return args;
21 }
22
23 //假设查询的字符串是?q=javascript&num=10
24     var args = getQueryStringArgs();
25     alert(args["q"]);//javascript
26     alert(args["num"]);//10

这个函数的第一步是先去掉查询字符串开头的问号,前提是location.search中必须要包含一个或多个字符。然后将所有参数保存在args对象中,该对象以字面量形式创建。接下来根据和号(&)来分割查询字符串,并返回name=value格式的字符串数组。然后for循环会迭代这个数组,再根据等于号分割每一项,从而返回第一项为参数名,第二项为参数值的数组。再使用decodeComponent()分别解码name和value(因为查询字符串应该是被编码过的),最后将name作为args对象的属性,将value作为相应属性的值。最后调用函数,每个查询字符串参数都成了返回对象的属性,方便了对每个参数的访问。

时间: 2024-11-08 19:14:32

location对象查询字符串参数的相关文章

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

下面介绍一个函数,用于处理location.search的结果,以解析查询字符串,然后返回包含所有参数的一个对象. 比如  www.baidu.com?q=javascript&num=10 的访问地址, 其中location.search 查询字符串为 ?q=javascript&num=10 , 解析后的结果为对象 {q:"javascript", num: 10},然后就可以通过对象的访问,取得每一个查询参数值.具体实现如下: function getQueryS

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

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

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

解析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

工具函数1 查询字符串与对象相互转化

查询字符串与对象相互转化 查询字符串转对象 //查询字符串转对象 var queryStr = 'a=1&b=2' var toObj=queryStr=>{ let obj={}; queryStr.split('&').forEach(item=>{ let[key,val]=item.split('='); obj[key]=val }) return obj } console.log(toObj(queryStr)) //{a: "1", b: &

BOM之location对象

定义 location提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能.location是一个很特别的对象,因为它既是window对象的属性,也是document对象的属性.换句话说,window.location和document.location引用的是同一个对象. console.log(window.location) console.log(document.location) 查询字符串参数 location将URL解析成独立的片段,让开发人员可以通过不同的属性访问这些片

location对象[第8章-浏览器对象模型BOM 笔记2]

location 是最有用的 BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能.事实上, location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是document 对象的属性:换句话说, window.location 和 document.location 引用的是同一个对象.location 对象的用处不只表现在它保存着当前文档的信息,还表现在它将 URL 解析为独立的片段,让开发人员可以通过不同的属性访问这些片段.下表列出了 loc