/**
* [通过参数名获取url中的参数值]
* 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
* @param {[string]} queryName [参数名]
* @return {[string]} [参数值]
*/
function GetQueryValue(queryName) {
var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
/**
*如果url中‘?’前面有‘#’,就要把search换成hash,需要截取几位字符串根据‘?’前面有几位具体设置
*var r = window.location.search.substr(1).match(reg);
*/
if ( r != null ){
return decodeURI(r[2]);
}else{
return null;
}
}
调用
var queryVal=GetQueryValue('name');
console.log(queryVal);// 小明
search和hash的区别
search:?
后的部分,又称为查询字符串 "?name=kang&when=2016"
hash: 返回#
之后的内容 "#first"
注意上面的search和hash的区别,如果URL中?
之前有一个#
比如:“http://localhost:63342/index.html#/version?type=35&id=5”那么使用window.location.search得到的就是空(“”)。因为“?type=35&id=5”串字符是属于“#/version?type=35&id=5”这个串字符的,也就是说查询字符串search只能在取到“?”后面和“#”之前的内容,如果“#”之前没有“?”search取值为空。
详情参考
网友评论