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禁止页面使用右键(简单示例代码)
Nov 13 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
May 09 Javascript
vue项目常用组件和框架结构介绍
Dec 24 Javascript
微信小程序自定义音乐进度条的实例代码
Aug 28 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
vue实现五子棋游戏
May 28 Javascript
Vue将props值实时传递 并可修改的操作
Aug 09 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
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
利用javascript中的call实现继承
2007/01/22 Javascript
jquery的颜色选择插件实例代码
2008/10/02 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
使用js画图之画切线
2015/01/12 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
浅谈python中requests模块导入的问题
2018/05/18 Python
python——全排列数的生成方式
2020/02/26 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
大整数数相乘的问题
2012/07/22 面试题
军训生自我鉴定范文
2013/12/27 职场文书
党校培训思想汇报
2013/12/30 职场文书
优秀民警事迹材料
2014/01/29 职场文书
2014年冬季防火方案
2014/05/21 职场文书
政风行风建设责任书
2014/07/23 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS