JavaScript獲取URL中參數(shù)值的四種方法
方法1:現(xiàn)代瀏覽器都支持 URL 和 URLSearchParams 對象,可以很方便地從URL中提取參數(shù)
// 假設(shè)當(dāng)前URL為 "https://example.com/?name=John&age=30"
const url = new URL(window.location.href);
// 或者你可以直接傳入一個URL字符串
const name = url.searchParams.get('name'); // "John"
const age = url.searchParams.get('age'); // "30"
console.log(name, age);方法2:使用正則表達(dá)式
可以使用正則表達(dá)式匹配URL參數(shù),這種方法相對較低效且較復(fù)雜,但也可以做到。
function getQueryParam(name) {
const regex = new RegExp('[?&]' + name + '=([^&#]*)', 'i')
const results = regex.exec(window.location.href)
return results ? decodeURIComponent(results[1]) : null
}
// 假設(shè)當(dāng)前URL為 "https://example.com/?name=John&age=30"
const name = getQueryParam('name'); // "John"
const age = getQueryParam('age'); // "30"
console.log(name, age)方法3:使用 split 和 reduce
可以通過 split 方法手動拆分查詢參數(shù),并用 reduce 將其轉(zhuǎn)化為對象。
function getQueryParams() {
return window.location.search
.substring(1) // 去掉 ?
.split('&') // 按 & 拆分
.reduce((params, param) => {
const [key, value] = param.split('=');
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
return params;
}, {});
}
// 假設(shè)當(dāng)前URL為 "https://example.com/?name=John&age=30"
const params = getQueryParams();
const name = params['name'];// "John"
const age = params['age']; // "30"
console.log(name, age);方法4:使用 location.search 和自定義函數(shù)
在 location.search 上構(gòu)建自己的解析函數(shù),此方法比較簡單。
function getQueryParameter(name) {
const params = new URLSearchParams(location.search)
return params.get(name)
}
// 假設(shè)當(dāng)前URL為 "https://example.com/?name=John&age=30"
const name = getQueryParameter('name'); // "John"
const age = getQueryParameter('age'); // "30"
console.log(name, age)總結(jié)
到此這篇關(guān)于JavaScript獲取URL中參數(shù)值的四種方法的文章就介紹到這了,更多相關(guān)JS獲取URL參數(shù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
self.attachevent is not a function的解決方法
今天一個客戶用chrome瀏覽器訪問網(wǎng)站,他的網(wǎng)站js提示self.attachevent is not a function,這個問題就是這個瀏覽器不支持attachevent,可以通過如下方法解決了,分享一下,需要的朋友可以參考下2017-04-04
javascript兩種function的定義介紹及區(qū)別說明
javascript兩種function的定義方式function a(){}和a=function(){}具體使用如下,感興趣的朋友可以參考下,希望對你對你學(xué)習(xí)function的定義有所幫助2013-05-05
springMvc 前端用json的方式向后臺傳遞對象數(shù)組方法
今天小編就為大家分享一篇springMvc 前端用json的方式向后臺傳遞對象數(shù)組方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
JS實(shí)現(xiàn)瀏覽器狀態(tài)欄文字閃爍效果的方法
這篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器狀態(tài)欄文字閃爍效果的方法,通過時間函數(shù)定時觸發(fā)遞歸調(diào)用實(shí)現(xiàn)狀態(tài)欄文字閃爍效果,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
JavaScript進(jìn)階(二)詞法作用域與作用域鏈實(shí)例分析
這篇文章主要介紹了JavaScript詞法作用域與作用域鏈,結(jié)合實(shí)例形式分析了JavaScript詞法作用域與作用域鏈相關(guān)概念、原理與操作注意事項,需要的朋友可以參考下2020-05-05
js實(shí)現(xiàn)人民幣大寫金額形式轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)人民幣大寫金額形式轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2016-04-04
JavaScript判斷數(shù)組重復(fù)內(nèi)容的兩種方法(推薦)
本文給大家介紹兩種JavaScript判斷數(shù)組重復(fù)內(nèi)容的方法(推薦)非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧2016-06-06

