function UrlParam(){//以百度搜索框输入hello搜索为例;此时地址栏显示为 https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd=hello
var url = window.location.search.substring[1];//tn=monline_3_dg&ie=utf-8&wd=hello
var pArray = url.split("&");//tn=monline_3_dg,ie=utf-8,wd=hello
for(var i=0;i<pArray.length;i++){
var index = pArray[i].indexOf("=");//获取等号的位置索引
var key = pArray[i].substring(0,index);
var value = pArray[i].substring(index+1);
this[key]=value;//返回对象的key属性的值value
}
}
测试:
var RequestUrl = new UrlParam();
var wdValue = RequestUrl.wd;
使用正则表达式匹配
function getUrlParam(key){//以key为wd举例
var url = window.location.search.substring(1);//返回页面url的?后面的部分 tn=monline_3_dg&ie=utf-8&wd=hello
var reg = new RegExp("(^|&)"+key+"=([^&]*)(&|$)");
var res = url.match(reg);//获取与正则匹配的字符串数组 此处返回: &wd=hello,&,hello,
var value = res[2];//数组第三个就是要获取的值 hello
return value;
}
测试:
document.write(getUrlParam("wd"));