首页 > 代码库 > 对地址栏的解析

对地址栏的解析

// 传入 地址栏中 key 返回对应的value值
getUrlParamValue:function (param) {
// 判断是否为null 或者空字符
if(null == param && "" == param) return null;
var reg = new RegExp("(^|&)"+ param +"=([^&]*)(&|$)");
var valueStr = window.location.search.substr(1).match(reg);
// 判断valueStr 是否是数组 而且不为空
if(Object.prototype.toString.call(valueStr)==‘[object Array]‘ && null != valueStr){
return decodeURI(valueStr[2]);
}else{
return null;
}

},
// 获取地址栏中?之后的参数 返回一个key value的JSON 数据
getUrlInfo:function () {
var url = window.location.href;
var urlParam ="";
var paramJson = {};
// url 地址中是否有?
if( url.indexOf("?") > 0 ){
urlParam = url.substring(url.lastIndexOf("?") + 1, url.length);
var paramArr = urlParam.split("&");
// 循环 拼装json 数据
for(var i=0;i<paramArr.length;i++){
// 对数据进行判断
if( paramArr[i].indexOf("=") > 0 ){
var key = paramArr[i].split("=")[0];
paramJson[key] = paramArr[i].split("=")[1];
}
}
return paramJson;
}else{
return null;
}
}
https://i.cnblogs.com/EditPosts.aspx?opt=1
在 getUrlParamValue 这个方法中 传入opt 得到的值为1
https://i.cnblogs.com/EditPosts.aspx?opt=1&ed=2
在 getUrlInfo 这个方法中  得到的json:{"opt":"1","ed":2}




对地址栏的解析