簡介 運用js的時候,我們有時可能會有這樣的需求,就是想要獲取瀏覽器地址欄指定的一項參數,形如:https://i.cnblogs.com/EditPosts.aspx?postid=8628413&update=1, 你想要獲取postid的內容8628413,或者update的內容1,那麼下麵就 ...
簡介
運用js的時候,我們有時可能會有這樣的需求,就是想要獲取瀏覽器地址欄指定的一項參數,形如:https://i.cnblogs.com/EditPosts.aspx?postid=8628413&update=1,
你想要獲取postid的內容8628413,或者update的內容1,那麼下麵就提供解決辦法。
解決辦法
其實解決辦法也挺簡單,只要通過一個函數就可以處理掉
//當前url地址欄 file:///C:/Users/admin/Desktop/test.html?id=2 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); console.log(window.location.search)//?id=2 var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } console.log(GetQueryString('id'))//2
上面函數的用法很簡單,只要把你想要的url參數傳進去就可以拿到返回值,註意參數為字元串
發散思維
上面的函數是直接解決了獲取當前頁面url中的參數,有事我們可能不是想要處理url,而是想要獲取特定字元串中的參數,形如:postid=8628413&update=1
然後你想要獲取postid的對應的值那麼要怎麼做呢?
只需要理解下上面函數的原理就很好改寫了
function GetQueryString(str,name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //str = postid=8628413&update=1 //其實str 就相當於 window.location.search.substr(1) var r = str.match(reg); if (r != null) return unescape(r[2]); return null; } console.log(GetQueryString('postid=8628413&update=1','postid'))