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]; } }