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

时间: 作者:革际

  

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

  修改前:  
代码如下:
  
  
var url="";  
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)  
  
  
修改后:  
代码如下:
  
  
var url="";  
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)  
  
  
感谢 草根程序猿很厉害把这个方法重写了一下,更严密,高效了,最后面在些再学习一下!!!

  
代码如下:

  
  
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("");  
alert(myParam.key1);  
  

  
注:  
1、substr()与substring(start,stop) ,提取字符串中介于两个指定下标之间的字符。

  
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。

  
参见  
2、location.search.substring(1) ,location.search设置或返回从问号 (?) 开始的 URL(查询部分)。

  
参见  
3、exec() 方法用于检索字符串中的正则表达式的匹配。太强大了,还不会用  
参考  
4、使用 decodeURIComponent() 对编码后的 URI 进行解码。

  
参见

(责任编辑:admin)

推荐图片Related

相关文章Related

查看更多热门新闻


首页 | 特效插件 | 常用代码 | 样式素材 | 脚本代码 | css特效

Copyright © 2017-2018 汇盛国际 版权所有

系统要求:本站自适应各终端浏览器分辨率

请使用Google、Firefox、IE9、百度浏览器登录网站

网站地图 | RSS订阅 | 汇盛国际