js获取url传递参数,js获取url?号后面的参数

方法一 :正则分析法

function getQueryString(name) {  
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");  
        var r = window.location.search.substr(1).match(reg);  
        if (r != null) return unescape(r[2]);  
        return null;  
    }  
  • 使用:params = getgetQueryString(params)就可以获取到参数

方法二

function GetRequest() {   
   var url = location.search; //获取url中"?"符后的字串   
   var theRequest = new Object();   
   if (url.indexOf("?") != -1) {   
      var str = url.substr(1);   
      strs = str.split("&");   
      for(var i = 0; i < strs.length; i ++) {   
         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);   
      }   
   }   
   return theRequest;   
}   
  • 调用GetRequest()此时获取的是全部的参数,需要获取某个参数怎么做呢?
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request[''参数1''];
参数2 = Request[''参数2''];
参数3 = Request[''参数3''];
参数N = Request[''参数N''];
  • 还有种方法直接获取指定的方法,其实跟上面思路是一样的,只是上面是获取的全部参数,下面这个是传入具体的参数名,获取指定的参数。
function getParameterByName(paramName) {
    var args = new Object();
    var argsStr = location.search;  //获取URL参数字符串
    if (argsStr.length > 0) {
        argsStr = argsStr.substring(1);
        var nameValueArr = argsStr.split("&");  //多参数
        for (var i = 0; i < nameValueArr.length; i++) {
            var pos = nameValueArr[i].indexOf('=');
            if (pos == -1) continue; //如果没有找到就跳过
            var argName = nameValueArr[i].substring(0, pos); //提取name
            var argVal = nameValueArr[i].substring(pos + 1); //提取value
            args[argName] = unescape(argVal);
        }
        return args[paramName];
    }
}
原文地址:https://www.cnblogs.com/wan-fei/p/8310484.html