话不多说, 直接上方法
方法一:(正则)
function getUrlParam(name) {//封装方法
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]);
return null; //返回参数值
}
// 链接 : https://www.baidu.com/s?wd=yes&id=1
getUrlParam('wd') //yes
方法二:
function getUrlParam() {
// var url = location.href.split('?')[1].split('&')
var url = location.search.split('?')[1].split('&') //有哈希(#号)取不到值,就用上面注释
var params = new Object()
for (var i = 0; i < url.length; i++) {
params[url[i].split('=')[0]] = unescape(url[i].split('=')[1])
}
return params
}
// 网址为 https://www.baidu.com/s?wd=yes&id=1
// 使用方法
var params = getUrlParam()
params.wd //yes
params.id //1
注意参数后面如果有特殊符号 ?,@,# 之类作为参数传递, 需要自己提前编码(转码), 不然容易出错