js分解url参数(面向对象-极简主义法应用)


Posted in Javascript onAugust 09, 2012

修改前:

<script type="text/javascript"> 
var url="www.taobao.com?key0=a&key1=b&key2=c"; 
function parseQueryString(url){ 
var str=url.split("?")[1], 
items=str.split("&"); 
var arr,name,value; 
for(var i = 0, l = items.length; i < l; i++){ 
arr=items[i].split("="); 
name= arr[0]; 
value= arr[1]; 
this[name]=value; 
} 
} 
var obj=new parseQueryString(url); 
alert(obj.key1) 
</script>

修改后:
<script type="text/javascript"> 
var url="www.taobao.com?key0=a&key1=b&key2=c"; 
var pQString={ 
createNew:function(url){ 
var str=url.split("?")[1], 
items=str.split("&"); 
var arr,name,value; 
for(var i = 0, l = items.length; i < l; i++){ 
arr=items[i].split("="); 
name= arr[0]; 
value= arr[1]; 
this[name]=value; 
} 
} 
} 
var obj=new pQString.createNew(url); 
alert(obj.key1) 
</script>

感谢 草根程序猿很厉害把这个方法重写了一下,更严密,高效了,最后面在些再学习一下!!!
<script type="text/javascript"> 
function getQueryString(url) { 
if(url) { 
url=url.substr(url.indexOf("?")+1); //字符串截取,比我之前的split()方法效率高 
} 
var result = {}, //创建一个对象,用于存name,和value 
queryString =url || location.search.substring(1), //location.search设置或返回从问号 (?) 开始的 URL(查询部分)。 
re = /([^&=]+)=([^&]*)/g, //正则,具体不会用 
m; 
while (m = re.exec(queryString)) { //exec()正则表达式的匹配,具体不会用 
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); //使用 decodeURIComponent() 对编码后的 URI 进行解码 
} 
return result; 
} 
// demo 
var myParam = getQueryString("www.taobao.com?key0=a&key1=b&key2=c"); 
alert(myParam.key1); 
</script>

注:
1、substr()与substring(start,stop) ,提取字符串中介于两个指定下标之间的字符。
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
参见https://3water.com/w3school/js/jsref_substring.htm
2、location.search.substring(1) ,location.search设置或返回从问号 (?) 开始的 URL(查询部分)。
参见https://3water.com/w3school/htmldom/prop_loc_search.htm
3、exec() 方法用于检索字符串中的正则表达式的匹配。太强大了,还不会用
参考https://3water.com/w3school/js/jsref_exec_regexp.htm
4、使用 decodeURIComponent() 对编码后的 URI 进行解码。
参见https://3water.com/w3school/js/jsref_exec_regexp.htm
Javascript 相关文章推荐
用js实现的仿sohu博客更换页面风格(简单版)
Mar 22 Javascript
JS字符串处理实例代码
Aug 05 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
ES6基础之默认参数值
Feb 21 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 jQuery
openlayers实现图标拖动获取坐标
Sep 25 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 #Javascript
JS数学函数Exp使用说明
Aug 09 #Javascript
基于jQuery实现左右div自适应高度完全相同的代码
Aug 09 #Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
Aug 09 #Javascript
用JQuery在网页中实现分隔条功能的代码
Aug 09 #Javascript
基于jQuery的简单九宫格实现代码
Aug 09 #Javascript
JavaScript基础知识之数据类型
Aug 06 #Javascript
You might like
基于pear auth实现登录验证
2010/02/26 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
页面中js执行顺序
2009/11/09 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
Javascript随机标签云代码实例
2016/06/21 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
python文件与目录操作实例详解
2016/02/22 Python
django session完成状态保持的方法
2018/11/27 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python语言是免费还是收费的?
2020/06/15 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
重阳节登山活动方案
2014/02/03 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
政协会议宣传标语
2014/10/09 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书