JavaScript獲取URL參數(shù)的四種方法總結
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 = {}; // 再通過 & 將每一個參數(shù)單獨分割出來 let paramsArr = urlStr.split('&') for(let i = 0,len = paramsArr.length;i < len;i++){ // 再通過 = 將每一個參數(shù)分割為 key:value 的形式 let arr = paramsArr[i].split('=') obj[arr[0]] = arr[1]; } return obj } console.log(getUrlParams(URL))
2.利用 URLSearchParams 方法
在 MDN(MDN是一個為所有的學習者從初級到高級的全面、定期更新的Web開發(fā)技術指南網(wǎng)站) 中結合兩種方法實現(xiàn)參數(shù)的獲?。?/p>
- 使用
new URLSearchParams(url)
方法,返回一個URLSearchParams
對象,再調(diào)用entries()
方法返回一個可迭代對象(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中使用一般會報錯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+ 表示匹配至少一個(數(shù)字、字母及下劃線), [\u4e00-\u9fa5]+ 表示匹配至少一個中文字符 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 庫時會默認掛在到全局 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>
總結
到此這篇關于JavaScript獲取URL參數(shù)的四種方法的文章就介紹到這了,更多相關JS獲取URL參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 使用JavaScript解析URL參數(shù)為對象的多種方法
- JavaScript 獲取 URL 中參數(shù)值的方法
- JavaScript 獲取 URL 中參數(shù)值的方法詳解(最新整理)
- JavaScript獲取URL中參數(shù)值的四種方法
- JavaScript獲取當前頁面url參數(shù)的方法詳解
- JavaScript實現(xiàn)獲取URL中參數(shù)值的4種方法
- 使用JavaScript獲取URL參數(shù)的方法總結
- JavaScript獲取URL參數(shù)的幾種方法小結
- JavaScript獲取URL參數(shù)常見的4種方法
- js獲取url參數(shù)值的幾種方式詳解
- JS獲取URL網(wǎng)址中參數(shù)的幾種方法小結
相關文章
ES6代碼轉(zhuǎn)ES5詳細教程(babel安裝使用教程)
Babel 是一個廣泛使用的 ES6 轉(zhuǎn)碼器,可以將 ES6 代碼轉(zhuǎn)為 ES5 代碼,從而在老版本的瀏覽器執(zhí)行,這意味著,你可以用 ES6 的方式編寫程序,又不用擔心現(xiàn)有環(huán)境是否支持,這篇文章主要介紹了ES6代碼轉(zhuǎn)ES5教程(babel安裝使用教程),需要的朋友可以參考下2023-01-01ion content 滾動到底部會遮住一部分視圖的快速解決方法
本文給大家?guī)砹薸on content 滾動到底部會遮住一部分視圖的快速解決方法,其實解決方法超簡單的,只要在你的controller里面預先注入$ionicScrollDelegate就可以了,感興趣的朋友通過本文一起學習吧2016-09-09javascript支持區(qū)號輸入的省市二級聯(lián)動下拉菜單
javascript支持區(qū)號輸入的省市二級聯(lián)動下拉菜單...2007-05-05JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別實例分析【 5 個區(qū)別】
這篇文章主要介紹了JS箭頭函數(shù)和常規(guī)函數(shù)之間的區(qū)別,結合實例形式分析了JS箭頭函數(shù)和常規(guī)函數(shù)之間的 5 個區(qū)別與相關使用注意事項,需要的朋友可以參考下2020-05-05Nuxt.js 數(shù)據(jù)雙向綁定的實現(xiàn)
這篇文章主要介紹了Nuxt.js 數(shù)據(jù)雙向綁定的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02深入淺出ES6新特性之函數(shù)默認參數(shù)和箭頭函數(shù)
這篇文章主要介紹了深入淺出ES6新特性之函數(shù)默認參數(shù)和箭頭函數(shù) 的相關資料,需要的朋友可以參考下2016-08-08