下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第前端JS獲取URL參數(shù)的4種方法總結(jié)目錄前言方法1:字符串split方法方法2:利用URLSearchParams方法方法3:利用正則匹配方法方法4:使用第三方庫qs總結(jié):
前言
對于前端來說,無論是在面試或者工作中都可能遇到處理url參數(shù)的問題,使用框架進(jìn)行項目開發(fā)時或許不用,有自帶的獲取參數(shù)方式,但是拋開使用框架來說我們也可以使用原生js方式或者借用第三方庫來實現(xiàn)參數(shù)的獲取并對象化,下面就對具體用法進(jìn)行介紹整理。
方法1:字符串split方法
因為一個url地址是字符串形式的,所以利用split方法將參數(shù)提取出來,該方法比較常用,而且容易理解(對于不太會使用正則的我來說,haha~)
letURL="name=張三age=25sex=男wife=小紅"
functiongetUrlParams(url){
//通過分割獲取后面的參數(shù)字符串
leturlStr=url.split('')[1]
//創(chuàng)建空對象存儲參數(shù)
letobj={};
//再通過將每一個參數(shù)單獨分割出來
letparamsArr=urlStr.split('')
for(leti=0,len=paramsArr.length;ilen;i++){
//再通過=將每一個參數(shù)分割為key:value的形式
letarr=paramsArr[i].split('=')
obj[arr[0]]=arr[1];
returnobj
console.log(getUrlParams(URL))
方法2:利用URLSearchParams方法
在MDN中結(jié)合兩種方法實現(xiàn)參數(shù)的獲?。?.使用newURLSearchParams(url)方法,返回一個URLSearchParams對象,再調(diào)用entries()方法返回一個可迭代對象(Iterator);2.使用Object.fromEntries(iterable)方法轉(zhuǎn)化為普通對象
letURL="name=Jackage=25sex=menwife=Lucy"
functiongetUrlParams2(url){
leturlStr=url.split('')[1]
consturlSearchParams=newURLSearchParams(urlStr)
constresult=Object.fromEntries(urlSearchParams.entries())
returnresult
console.log(getUrlParams2(URL))
特別的:URLSearchParams方法不僅可以獲取參數(shù),還可以將參數(shù)對象轉(zhuǎn)為字符串,詳細(xì)用法可查看MDN中的介紹,并且該方法存在瀏覽器兼容性問題。
方法3:利用正則匹配方法
正則匹配功能強(qiáng)大相信很多小伙伴都知道,不僅可以實現(xiàn)在登錄注冊時的賬號、密碼、郵箱、手機(jī)號等等的驗證,還可以非常方便的處理一些字符串(校驗、替換、提取等操作),難點在于對正則使用的熟練度,這里就是通過正則提取字符串中需要的字符
letURL="name=Tomfriend=Jerry"
functiongetUrlParams3(url){
//\w+表示匹配至少一個(數(shù)字、字母及下劃線),[\u4e00-\u9fa5]+表示匹配至少一個中文字符
letpattern=/(\w+|[\u4e00-\u9fa5]+)=(\w+|[\u4e00-\u9fa5]+)/ig;
letresult={};
url.replace(pattern,($,$1,$2)={
result[$1]=$2;
returnresult
console.log(getUrlParams3(URL))
方法4:使用第三方庫qs
使用第三方庫qs也可以實現(xiàn)url中參數(shù)字符的提取,還能實現(xiàn)將參數(shù)對象轉(zhuǎn)為url參數(shù)形式,需要注意的是瀏覽器cdn方式引入時是默認(rèn)添加到全局對象window的Qs屬性上的
scriptsrc="/ajax/libs/qs/6.10.3/qs.min.js"/script
script
letURL="product='iPhone13Pro'price=¥9999.00"
functiongetUrlParams4(url){
//引入qs庫時會默認(rèn)掛在到全局window的Qs屬性上
//console.log(window)
leturlStr=url.split('')[1]
letresult=Qs.parse(urlStr)
//拼接額外參數(shù)
letotherParams={
num:50,
size:6.1
letstr=Qs.stringify(other
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)要領(lǐng):網(wǎng)站性能優(yōu)化關(guān)鍵點
- 2026年公共關(guān)系管理情境模擬題媒體溝通策略題目
- 2026年審計專業(yè)認(rèn)證試題GJB與ISO雙重標(biāo)準(zhǔn)下的審計題
- 2026年綠色能源市場與投資策略試題集
- 2026年烹飪技能競賽經(jīng)典菜肴制作標(biāo)準(zhǔn)題
- 2026年會員營銷策略有效性測試題
- 2026年測試工程師基礎(chǔ)知識與進(jìn)階知識測試題
- 2026年外語翻譯技能與教學(xué)方法試題集
- 2026年建筑師執(zhí)業(yè)資格考試題庫建筑設(shè)計與實踐操作指南
- 2025 小學(xué)二年級道德與法治上冊友好交流使用禮貌用語對話更和諧更有禮課件
- 深圳大疆在線測評行測題庫
- 金屬廠生產(chǎn)制度
- 2026安徽淮北市特種設(shè)備監(jiān)督檢驗中心招聘專業(yè)技術(shù)人員4人參考題庫及答案1套
- 2025年航空行業(yè)空客智能制造報告
- 蒙牛乳業(yè)股份有限公司盈利能力分析
- 2025民航西藏空管中心社會招聘14人(第1期)筆試參考題庫附帶答案詳解(3卷合一版)
- (新教材)2026年人教版八年級下冊數(shù)學(xué) 21.2.1 平行四邊形及其性質(zhì) 課件
- 設(shè)備保養(yǎng)維護(hù)規(guī)程
- 2025年東營中考物理真題及答案
- DL-T+5860-2023+電化學(xué)儲能電站可行性研究報告內(nèi)容深度規(guī)定
- GB/T 46425-2025煤矸石山生態(tài)修復(fù)技術(shù)規(guī)范
評論
0/150
提交評論