比如从其他链接跳转过来时带有参数,页面的URL就会变成这样:
http://www.xxx.com/?a=1&b=2#/
如果从主页再往二级页跳转时还带有参数,页面的URL就会成这样:
http://www.xxx.com/?a=1&b=2#/user?uname=蚊子&year=2018
在这个具有两个?
的链接,location.search获取到的是哪个值?测试一下我们就会发现,获取到的是前面?
到#
之前的参数:
console.log( location.search );
// "?a=1&b=2"
function getQueryString(name) {
var reg = new RegExp("[?&]" + name + "=([^&#]*)", "i");
var res = window.location.href.match(reg);
if( res && res.length>1 ){
return decodeURIComponent(res[1]);
}
return '';
}
getQueryString('a'); // "1"
getQueryString('b'); // "2"
getQueryString('uname'); // "蚊子"
getQueryString('year'); // "2018"