说一下,查询字符串函数
每次看《javaScript高级程序设计》,都有意外的收获,哈哈哈,好久没有写东西了,原因就是各种坑啊,一言难尽,不说也罢,言归正传。
原来项目中遇到了获取location,href中问号后面的内容,自己也封装了一个方法.话不多说,直接上代码.
/**获取当前页面中url 中? 之后的内容(包括 ?) 返回的是对象*/ function getLocationStringArgs() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]); } } return theRequest; }
然后今天看书的时候,突然看到了书上也有一个方法,看着熟悉,也给写下来了,方便对比
基本的思路就是,把loaction带问号的字符串截取一下,按照‘&’,转换成数组的形式,数组的每一项按照‘=’在分割成对象的key和value,最后返回该对象
用法简单,就是没有进行编码,需要的,可以把key和value编码转化一下就好了~
function getLocationStringArgs() { var qs = (location.search.length > 0 ? location.search.substring(1) : ''); args = {}; items = qs.length ? qs.split('&') : []; item = null; name = null ; value = null ; i = 0; len = items.length; 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; }
上面一个是自己封装的,下面一个是《javaScript高级程序设计》上的, 写下来,方便自己以后查看,需要的可以收藏一下~有什么不对的地方,欢迎大家指正批评。
既然选择了远方,便只顾风雨兼程