JavaScript三種獲取URL參數(shù)值的方法
前言
在 URL 中,查詢參數(shù)字符串值通常提供有關(guān)請求的信息,例如搜索參數(shù)或正在使用的對象的 ID。如果在前端處理任何業(yè)務(wù)或請求邏輯,了解如何從 URL 中檢索查詢字符串值非常重要。本文分享三種從 URL 獲取參數(shù)的方法。
URLSearchParams
除 IE 11 之外的所有主要瀏覽器版本都支持該 URLSearchParams
接口。它通過解析 URL 的查詢字符串并提供訪問值的方法來工作。
例如:
此接口的缺點之一是您必須僅將 URL 的查詢字符串傳遞給它。如果您正在使用當(dāng)前的瀏覽器 URL,這很容易做到,因為您只需通過 window.location.search
。 如果您使用任何其他 URL,則需要單獨解析并傳遞查詢字符串。
const params = new URLSearchParams("q=devpoint&page=1"); params.get("q"); // 'devpoint' params.get("page"); // '1'
要將查詢參數(shù)解析為對象,請使用 URL.searchParams
的 .entries()
方法,該方法返回一個 Iterator
key/value
對,并將Object.fromEntries
其轉(zhuǎn)換為對象。
const params = new URLSearchParams("q=devpoint&page=1"); const entries = params.entries(); Object.fromEntries(entries); // {q: 'devpoint', page: '1'}
URL
除了 IE 11 之外,所有主要瀏覽器版本也都支持 URL
API。它提供了一種更靈活的 URL 解析方式,還提供了一種訪問查詢字符串值的方式。
例如:
const url = new URL("https://stackabuse.com/search?q=devpoint&page=1"); const searchParams = url.searchParams; searchParams.get("q"); // 'devpoint' searchParams.get("page"); // '1'
url.searchParams
與 URLSearchParams
返回的實例對象類型相同。
上面的 url
對象也將 URL
的所有部分分解成各個部分。
例如:
url.href; // 'https://stackabuse.com/search?q=devpoint&page=1' url.origin; // 'https://stackabuse.com' url.protocol; // 'https:' url.host; // 'stackabuse.com' url.hostname; // 'stackabuse.com' url.port; // '' url.pathname; // '/search' url.search; // '?q=devpoint&page=2' url.hash; // ''
純JS
如果由于某種原因無法訪問上述 API 或希望對解析有更多控制權(quán),可以使用以下代碼將查詢字符串解析為對象。
function getQueryParams(url) { const paramArr = url.slice(url.indexOf("?") + 1).split("&"); const params = {}; paramArr.map((param) => { const [key, val] = param.split("="); params[key] = decodeURIComponent(val); }); return params; }
函數(shù)執(zhí)行后的效果如下:
getQueryParams("https://stackabuse.com/search?q=devpoint&page=2"); // { q: 'devpoint', page: '2' }
到此這篇關(guān)于JavaScript三種獲取URL參數(shù)值的方法的文章就介紹到這了,更多相關(guān)JS獲取URL參數(shù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript基于prototype實現(xiàn)類似OOP繼承的方法
這篇文章主要介紹了javascript基于prototype實現(xiàn)類似OOP繼承的方法,實例分析了JavaScript使用prototype實現(xiàn)面向?qū)ο蟪绦蛟O(shè)計的中類繼承的相關(guān)技巧,需要的朋友可以參考下2015-12-12JavaScript子類用Object.getPrototypeOf去調(diào)用父類方法解析
這篇文章主要介紹了JavaScript子類用Object.getPrototypeOf去調(diào)用父類方法。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12Javascript類型系統(tǒng)之undefined和null淺析
這篇文章主要介紹了Javascript類型系統(tǒng)之undefined和null的知識,通過本文還簡單給大家介紹了javascript中null和undefined的區(qū)別的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07