深究JavaScript

获取url参数的两种方式

2020-03-17  本文已影响0人  zhangweisep

获取URL参数的方法封装

/**
 * 获取URL参数( URL编码问题解决办法: decodeURI(requestURL("参数名"))解码 )
 * @param paras : 参数名
 * @returns {*} : 参数对应值
 */
function requestURL(paras) {
  var url = location.href;
  var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
  var paraObj = {};
  for (i = 0; j = paraString[i]; i++) {
    paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
  }
  var returnValue = paraObj[paras.toLowerCase()];
  if (typeof(returnValue) == "undefined" || returnValue == "undefined" || returnValue == null) {
    return "";
  } else {
    return returnValue;
  }
}

正则法获取

//例:地址为:https://hjm100.cn?name=1
//截取url传递的参数 
     function GetQueryString(name) { 
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); 
        var r = window.location.search.substr(1).match(reg); 
        if (r!=null) return (r[2]); return null; 
    }       
//调用方法:
console.log(GetQueryString('name'))

数组法

function UrlSearch() {
    var url,value; 
    var str=location.href; //取得整个地址栏
    var num=str.indexOf("?") 
    str=str.substr(num+1); //取得所有参数   stringvar.substr(start [, length ]
    var arr=str.split("&"); //各个参数放到数组里
    for(var i=0;i < arr.length;i++){ 
    num=arr[i].indexOf("="); 
    if(num>0){ 
        url=arr[i].substring(0,num);
        value=arr[i].substr(num+1);
        this[url]=value;
        } 
    } 
} 
var Request=new UrlSearch(); //实例化
var slide = Request.slide
上一篇 下一篇

猜你喜欢

热点阅读