JavaScript獲取URL參數(shù)的四種方法總結(jié)
1.字符串 split 方法(推薦)
let URL = "http://www.baidu.com?name=張三&age=25&sex=男&wife=小紅" function getUrlParams(url) { // 通過 ? 分割獲取后面的參數(shù)字符串 let urlStr = url.split('?')[1] // 創(chuàng)建空對象存儲參數(shù) let obj = {}; // 再通過 & 將每一個(gè)參數(shù)單獨(dú)分割出來 let paramsArr = urlStr.split('&') for(let i = 0,len = paramsArr.length;i < len;i++){ // 再通過 = 將每一個(gè)參數(shù)分割為 key:value 的形式 let arr = paramsArr[i].split('=') obj[arr[0]] = arr[1]; } return obj } console.log(getUrlParams(URL))
2.利用 URLSearchParams 方法
在 MDN(MDN是一個(gè)為所有的學(xué)習(xí)者從初級到高級的全面、定期更新的Web開發(fā)技術(shù)指南網(wǎng)站) 中結(jié)合兩種方法實(shí)現(xiàn)參數(shù)的獲取:
- 使用
new URLSearchParams(url)
方法,返回一個(gè)URLSearchParams
對象,再調(diào)用entries()
方法返回一個(gè)可迭代對象(Iterator)
; - 使用
Object.fromEntries(iterable)
方法轉(zhuǎn)化為普通對象
let URL = "http://www.baidu.com?name=Jack&age=25&sex=men&wife=Lucy" function getUrlParams2(url) { let urlStr = url.split('?')[1] const urlSearchParams = new URLSearchParams(urlStr) const result = Object.fromEntries(urlSearchParams.entries()) return result } console.log(getUrlParams2(URL))
備注:vue中使用一般會報(bào)錯(cuò)Object.fromEntries is not a function electron-vue
需要加裝插件
npm i polyfill-object.fromentries
引入
import 'polyfill-object.fromentries'
3.利用正則匹配方法
let URL = "http://www.baidu.com?name=Tom&friend=Jerry" function getUrlParams3(url){ // \w+ 表示匹配至少一個(gè)(數(shù)字、字母及下劃線), [\u4e00-\u9fa5]+ 表示匹配至少一個(gè)中文字符 let pattern = /(\w+|[\u4e00-\u9fa5]+)=(\w+|[\u4e00-\u9fa5]+)/ig; let result = {}; url.replace(pattern, ($, $1, $2)=>{ result[$1] = $2; }) return result } console.log(getUrlParams3(URL))
4.使用第三方庫 qs
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.10.3/qs.min.js"></script> <script> let URL = "http://www.baidu.com?product='iPhone 13 Pro'&price=¥9999.00" function getUrlParams4(url){ // 引入 qs 庫時(shí)會默認(rèn)掛在到全局 window 的 Qs 屬性上 // console.log(window) let urlStr = url.split('?')[1] let result = Qs.parse(urlStr) // 拼接額外參數(shù) let otherParams = { num:50, size:6.1 } let str = Qs.stringify(otherParams) let newUrl = url + str return {result,newUrl} } console.log(getUrlParams4(URL)) </script>
總結(jié)
到此這篇關(guān)于JavaScript獲取URL參數(shù)的四種方法的文章就介紹到這了,更多相關(guān)JS獲取URL參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用JavaScript解析URL參數(shù)為對象的多種方法
- JavaScript 獲取 URL 中參數(shù)值的方法
- JavaScript 獲取 URL 中參數(shù)值的方法詳解(最新整理)
- JavaScript獲取URL中參數(shù)值的四種方法
- JavaScript獲取當(dāng)前頁面url參數(shù)的方法詳解
- JavaScript實(shí)現(xiàn)獲取URL中參數(shù)值的4種方法
- 使用JavaScript獲取URL參數(shù)的方法總結(jié)
- JavaScript獲取URL參數(shù)的幾種方法小結(jié)
- JavaScript獲取URL參數(shù)常見的4種方法
- js獲取url參數(shù)值的幾種方式詳解
- JS獲取URL網(wǎng)址中參數(shù)的幾種方法小結(jié)
相關(guān)文章
ES6代碼轉(zhuǎn)ES5詳細(xì)教程(babel安裝使用教程)
Babel 是一個(gè)廣泛使用的 ES6 轉(zhuǎn)碼器,可以將 ES6 代碼轉(zhuǎn)為 ES5 代碼,從而在老版本的瀏覽器執(zhí)行,這意味著,你可以用 ES6 的方式編寫程序,又不用擔(dān)心現(xiàn)有環(huán)境是否支持,這篇文章主要介紹了ES6代碼轉(zhuǎn)ES5教程(babel安裝使用教程),需要的朋友可以參考下2023-01-01JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡單方法示例
這篇文章主要給大家介紹了關(guān)于JS時(shí)間戳與日期格式互相轉(zhuǎn)換的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11如何解決ligerUI布局時(shí)Center中的Tab高度大小
這篇文章主要介紹了如何解決ligerUI布局時(shí)Center中的Tab高度大小的相關(guān)資料,需要的朋友可以參考下2015-11-11ion content 滾動(dòng)到底部會遮住一部分視圖的快速解決方法
本文給大家?guī)砹薸on content 滾動(dòng)到底部會遮住一部分視圖的快速解決方法,其實(shí)解決方法超簡單的,只要在你的controller里面預(yù)先注入$ionicScrollDelegate就可以了,感興趣的朋友通過本文一起學(xué)習(xí)吧2016-09-09javascript支持區(qū)號輸入的省市二級聯(lián)動(dòng)下拉菜單
javascript支持區(qū)號輸入的省市二級聯(lián)動(dòng)下拉菜單...2007-05-05JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別實(shí)例分析【 5 個(gè)區(qū)別】
這篇文章主要介紹了JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別,結(jié)合實(shí)例形式分析了JS箭頭函數(shù)和常規(guī)函數(shù)之間的 5 個(gè)區(qū)別與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2020-05-05Nuxt.js 數(shù)據(jù)雙向綁定的實(shí)現(xiàn)
這篇文章主要介紹了Nuxt.js 數(shù)據(jù)雙向綁定的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù)
這篇文章主要介紹了深入淺出ES6新特性之函數(shù)默認(rèn)參數(shù)和箭頭函數(shù) 的相關(guān)資料,需要的朋友可以參考下2016-08-08