JS如何獲取URL中的Query參數(shù)
更新時間:2023年01月17日 09:18:54 作者:loki951753
這篇文章主要介紹了JS如何獲取URL中的Query參數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
JS獲取URL的Query參數(shù)
需求描述
獲取 URL 中的 Query 參數(shù),例如:
https://www.example.com/test.html?a=param1&b=param2
代碼片段
實現(xiàn)一
使用URLSearchParams
對象,兼容性見Can I use
const urlString = 'https://www.example.com/test.html?a=param1&b=param2'; const urlObj = new URL(urlString); const [a, b] = urlObj.searchParams.values();
實現(xiàn)二
function parseSearchParams(searchParamsString){ return searchParamsString.split('&').reduce((searchParams, curKV)=>{ const [k, v] = curKV.split('=').map(decodeURIComponent); searchParams[k] = v; return searchParams; }, {}); }
JS獲取URL上的指定參數(shù)
function getAllUrlParams(url) { // get query string from url (optional) or window var queryString = url ? url.split('?')[1] : window.location.search.slice(1); // we'll store the parameters here var obj = {}; // if query string exists if (queryString) { // stuff after # is not part of query string, so get rid of it queryString = queryString.split('#')[0]; // split our query string into its component parts var arr = queryString.split('&'); for (var i = 0; i < arr.length; i++) { // separate the keys and the values var a = arr[i].split('='); // in case params look like: list[]=thing1&list[]=thing2 var paramNum = undefined; var paramName = a[0].replace(/\[\d*\]/, function (v) { paramNum = v.slice(1, -1); return ''; }); // set parameter value (use 'true' if empty) var paramValue = typeof (a[1]) === 'undefined' ? true : a[1]; // if parameter name already exists if (obj[paramName]) { // convert value to array (if still string) if (typeof obj[paramName] === 'string') { obj[paramName] = [obj[paramName]]; } // if no array index number specified... if (typeof paramNum === 'undefined') { // put the value on the end of the array obj[paramName].push(paramValue); } // if array index number specified... else { // put the value at that index number obj[paramName][paramNum] = paramValue; } } // if param name doesn't exist yet, set it else { obj[paramName] = paramValue; } } } return obj; }; var x = getAllUrlParams('http://127.0.0.1:5000/app/index.html?code=KXMvRUkC92WaJ6n3vELMU3iK2128879&state=').code; console.log(x);
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
script標(biāo)簽屬性type與language使用選擇
很多使用javascript的朋友都有著這樣一個問題:script標(biāo)簽屬性type與language使用應(yīng)如何選擇,為解決此疑惑,本文詳細(xì)整理了一下,需要的朋友可以參考下2012-12-12JavaScript實現(xiàn)瀏覽器網(wǎng)頁自動滾動并點擊的示例代碼
這篇文章主要介紹了JavaScript實現(xiàn)瀏覽器網(wǎng)頁的自動滾動并點擊的示例代碼,幫助大家更好的理解和學(xué)習(xí)JavaScript的使用,感興趣的朋友可以了解下2020-12-12javascript簡單鏈?zhǔn)秸{(diào)用案例分析
這篇文章主要介紹了javascript簡單鏈?zhǔn)秸{(diào)用,結(jié)合具體實例形式模擬jQuery分析了鏈?zhǔn)秸{(diào)用的原理與具體實現(xiàn)技巧,需要的朋友可以參考下2017-05-05XHTML-Strict 內(nèi)允許出現(xiàn)的標(biāo)簽
XHTML-Strict 內(nèi)允許出現(xiàn)的標(biāo)簽...2006-12-12blob轉(zhuǎn)換成string格式同步調(diào)用問題解決分析
這篇文章主要為大家介紹了blob轉(zhuǎn)換成string格式同步調(diào)用問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05