/**
* [通過參數(shù)名獲取url中的參數(shù)值]
* 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
* @param {[string]} queryName [參數(shù)名]
* @return {[string]} [參數(shù)值]
*/
function GetQueryValue(queryName) {
var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
/**
*如果url中‘?’前面有‘#’,就要把search換成hash,需要截取幾位字符串根據(jù)‘?’前面有幾位具體設(shè)置
*var r = window.location.search.substr(1).match(reg);
*/
if ( r != null ){
return decodeURI(r[2]);
}else{
return null;
}
}
調(diào)用
var queryVal=GetQueryValue('name');
console.log(queryVal);// 小明
search和hash的區(qū)別
search:?后的部分,又稱為查詢字符串 "?name=kang&when=2016"
hash: 返回#之后的內(nèi)容 "#first"
注意上面的search和hash的區(qū)別,如果URL中?之前有一個(gè)#比如:“http://localhost:63342/index.html#/version?type=35&id=5”那么使用window.location.search得到的就是空(“”)。因?yàn)椤??type=35&id=5”串字符是屬于“#/version?type=35&id=5”這個(gè)串字符的,也就是說查詢字符串search只能在取到“?”后面和“#”之前的內(nèi)容,如果“#”之前沒有“?”search取值為空。
詳情參考