用js从url中提取request参数

UrlParm =  function () {  // url参数   
   var  data, index;   
  ( function  init() {   
    data = [];   
    index = {};   
     var  u = window.location.search.substr(1);   
     if  (u !=  '' ) {   
       var  parms = decodeURIComponent(u).split( '&' );   
       for  ( var  i = 0, len = parms.length; i < len; i++) {   
         if  (parms[i] !=  '' ) {   
           var  p = parms[i].split( "=" );   
           if  (p.length == 1 || (p.length == 2 && p[1] ==  '' )) { // p | p=   
            data.push([ '' ]);   
            index[p[0]] = data.length - 1;   
          }  else   if  ( typeof (p[0]) ==  'undefined'  || p[0] ==  '' ) {  // =c | =   
            data[0] = [p[1]];   
          }  else   if  ( typeof (index[p[0]]) ==  'undefined' ) {  // c=aaa   
            data.push([p[1]]);   
            index[p[0]] = data.length - 1;   
          }  else  { // c=aaa   
            data[index[p[0]]].push(p[1]);   
          }   
        }   
      }   
    }   
  })();   
   return  {   
     // 获得参数,类似request.getParameter()   
    parm :  function (o) {  // o: 参数名或者参数次序   
       try  {   
         return  ( typeof (o) ==  'number'  ? data[o][0] : data[index[o]][0]);   
      }  catch  (e) {   
      }   
    },   
     //获得参数组, 类似request.getParameterValues()   
    parmValues :  function (o) {  //  o: 参数名或者参数次序   
       try  {   
         return  ( typeof (o) ==  'number'  ? data[o] : data[index[o]]);   
      }  catch  (e) {}   
    },   
     //是否含有parmName参数   
    hasParm :  function (parmName) {   
       return   typeof (parmName) ==  'string'  ?  typeof (index[parmName]) !=  'undefined'  :  false ;   
    },   
     // 获得参数Map ,类似request.getParameterMap()   
    parmMap :  function () {   
       var  map = {};   
       try  {   
         for  ( var  p  in  index) {  map[p] = data[index[p]];  }   
      }  catch  (e) {}   
       return  map;   
    }   
  }   
}();   
  
//例如   
// URL是 http://127.0.0.1/demo.jsp?a&page=2&b=dd&c=123&b=dd2   
UrlParm.parm(0)          // 结果:  "";   
UrlParm.parm( 'a' )        // 结果:  "";   
UrlParm.parm( 'page' )     // 结果:  "2";   
UrlParm.parm(1)          // 结果:  "2";   
UrlParm.parm( "b" )        // 结果:  "dd";   
UrlParm.parmValues( "b"// 结果:  ["dd","dd2"];   
UrlParm.hasParm( "b" )     // 结果:  true;   
UrlParm.hasParm( "x" )     // 结果:  false;   
UrlParm.parmMap()        // 结果:  {a:[""],page:[2],b:["dd","dd2"],c:["123"]};  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值