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 相关文章推荐
JQuery优缺点分析说明
Apr 10 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
原生JS实现图片左右轮播
Dec 30 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
Feb 27 Javascript
JavaScript中的一些隐式转换和总结(推荐)
Dec 22 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
解决VUE中document.body.scrollTop为0的问题
Sep 15 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 Javascript
基于angular实现树形二级表格
Oct 16 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
坏狼php学习 计数器实例代码
2008/06/15 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
优化javascript的执行速度
2010/01/23 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python三元运算符实现方法
2013/12/17 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
中职应届生会计求职信
2013/10/23 职场文书
汽车运用工程毕业生自荐信
2013/10/29 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
2014年销售部工作总结
2014/12/01 职场文书
爱情保证书
2015/01/17 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015年行政部工作总结
2015/04/28 职场文书
平凡的世界读书笔记
2015/06/25 职场文书