/**
* 获取指定URL的参数值
* @param url 指定的URL地址
* @param name 参数名称
* @return 参数值
*/
function getUrlParam(url,name){
var pattern = new RegExp("[?&]"+name+"\=([^&]+)", "g");
var matcher = pattern.exec(url);
var items = null;
if(null != matcher){
try{
items = decodeURIComponent(decodeURIComponent(matcher[1]));
}catch(e){
try{
items = decodeURIComponent(matcher[1]);
}catch(e){
items = matcher[1];
}
}
}
return items;
}
当前URL:location.href
前一页面的URL:document.referrer
获取当前URL中参数name的值:getUrlParam(location.href,"name");
获取前一页面URL中参数name的值:getUrlParam(document.referrer,"name");
但是这种方式只能获取=后的一个值,如果有这样的URL:aaa.jsp?info=name=1;sex=2,对于这个URL,用上面的方法获取到的info的值是name,而实际上我需要获取到的是name=1;sex=2。
道理都一样,变换一下,用下面的方法:
/**
* 获取当前URL参数值
* @param name 参数名称
* @return 参数值
*/
function getUrlParam(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;
}
用这个得到的就是:name=1;sex=2