通過正則獲取到參數(shù)值

/**
 * [通過參數(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取值為空。
詳情參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容