注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

https://github.com/DoubleSpout

 
 
 

日志

 
 

javascript的getquerystring(javascript获取url参数)  

2011-06-30 13:27:32|  分类: web前端技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近在开发时需要用到javascript通过url传参,以前一直使用别人写的一个正则来进行判断,由于正则运行效率比较慢,这次重新写了一个javascript的GetQueryString方法,以备后用。

var Get_QueryString = function(name){
        var now_url = document.location.search.slice(1),
              q_array = now_url.split('&');
        for(var i=0;i<q_array.length;i++){
            var v_array = q_array[i].split('=');
            if(v_array[0]==name){
                return v_array[1];
                }
        }
        return false;
    }

上面是对于单个url参数的提取比较方便,但是如果对于多个url参数,用上面的方法可能不能胜任了,需要多次匹配,浪费效率,我们来改写下,强加型Get_QueryString_Plus

var Get_QueryString_Plus = function(url){
      var no_q = 1,
      now_url = url && (url.split('?')[1] || no_q) || document.location.search.slice(1) || no_q;
   if(now_url === no_q) return false;
      var q_array = now_url.split('&'),
          q_o = {},
          v_array; 
        for(var i=0;i<q_array.length;i++){
              v_array = q_array[i].split('=');
              try{
          q_o[v_array[0]] = decodeURIComponent(v_array[1]);
         }
         catch(e){
          q_o[v_array[0]] = null;
         }
        };
        return q_o;
    }


说明:如果传参url字符串,则忽略当前的域名,如果不传参,则默认使用当前的域名,如果当前域名或这传入的url没有参数则返回false

//情况1:
//url为:“http://category.dangdang.com/list?cat=4001616&store=eq0”
var q_o = Get_QueryString_Plus();
alert(q_o);   //[object Object]
alert(q_o.cat); //4001616
alert(q_o.store); //eq0

//情况2:
//url为:“http://www.dangdang.com/”
var q_o = Get_QueryString_Plus();
alert(q_o);   //false
alert(q_o.cat); //undefined
alert(q_o.store); //undefined

//情况3:
//url为:“http://category.dangdang.com/list?cat=4001616&store=eq0”
var q_o = Get_QueryString_Plus('http://category.dangdang.com/list?cat=xxxx&store=yyyyyy');
alert(q_o);   //[object Object]
alert(q_o.cat); //xxxx
alert(q_o.store); //yyyyyy

//情况4:
//url为:“http://category.dangdang.com/list?cat=4001616&store=eq0”
var q_o = Get_QueryString_Plus('http://category.dangdang.com/list');
alert(q_o);   //false
alert(q_o.cat); //undefined
alert(q_o.store); //undefined

  评论这张
 
阅读(1685)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016