欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript使用URLSearchParams優(yōu)雅獲取URL攜帶的參數(shù)

 更新時間:2025年08月18日 08:20:35   作者:南風晚來晚相識  
這篇文章主要為大家詳細介紹了JavaScript如何使用URLSearchParams優(yōu)雅獲取URL攜帶的參數(shù),文中的示例代碼講解詳細,感興趣的小伙伴可以了解下

需求描述

今天遇見一個問題,再請求接口的時候。

需要知道返回來的url中某個參數(shù)的值與返回來的數(shù)據(jù)是否匹配。

因此我們需要獲取URL攜帶的參數(shù)的參數(shù)值。

我知道這個需求對很多小伙伴來說,非常簡單。三下五除二就寫下了如下的代碼

獲取url地址欄中的參數(shù)

思路如下:

1,通過string.split方法通過?分割成為2部分,得到aaa=newList&regionDd=12345&user=zhangsan

2,然后在通過 & 分割成為2部分,得到aaa=newList, regionDd=12345, user=zhangsan

3,最后在通過 = 分割成為key:value的形式

const responseURL  = "http://localhost:8088/list/query-list/?aaa=newList&regionDd=12345&user=zhangsan"
// 上面這個字符串,我想獲取到aaa的值是 newList。應該如何實現(xiàn)
function parseUrlParams(url,keyName) {
  const queryString = url.split('?')[1];
  if (!queryString) return undefined;
  const params = {};
  const pairs = queryString.split('&');
  console.log('pairs', pairs)
  for (let pairItem of pairs) {
    const [key, value] = pairItem.split('=');
    params[decodeURIComponent(key)] = decodeURIComponent(value || '');
  }
  return params[keyName];
}

console.log(parseUrlParams(responseURL,'user'))

decodeURIComponent 的作用

有的小伙伴看見我使用了decodeURIComponent,想知道decodeURIComponent的作用?

decodeURIComponent 的作用是 將 URL 編碼后的參數(shù)名和參數(shù)值還原為人類可讀的原始字符。

確保解析后的參數(shù)值符合預期。

具體說明:

URL 中某些特殊字符(如空格、&, =, 中文等)會被編碼成 % 開頭的格式(例如空格變成 %20,中文可能變成 %E4%B8%AD)。

decodeURIComponent 兼容性非常好。

encodeURIComponent 的作用說明

假設 URL 是:

"http://example.com?user=abc%20test&name=%E5%BC%A0%E4%B8%89"

原始參數(shù)值:

user = abc test
name= '張三'

未解碼的結果

{user: 'abc%20test', name: '%E5%BC%A0%E4%B8%89'}

使用 decodeURIComponent 解碼后:

{user: 'abc test', name: '張三'}

URLSearchParams 的簡單說明

除了使用上面的方法,其實還有一個方法可以更加優(yōu)雅的實現(xiàn)。

掌聲有請我們今天的主角。URLSearchParams 閃亮登場。

URLSearchParams 是 ECMAScript 2015(ES6)引入的內置對象,用于解析和操作 URL 中的查詢參數(shù)(即 URL 地址欄中 "?" 后面的部分)

URLSearchParams 是瀏覽器原生 API,能自動處理 URL 編碼(如 %20 轉空格)。

通過 .get(name) 獲取參數(shù)值,若參數(shù)不存在則返回 null

如果 URL 中存在多個同名參數(shù)(如 dim=abc&dim=cvm), get() 會返回第一個值abc

params.set(key, value) 如果key不存在就是新增參數(shù),如果key存在就是修改參數(shù)值

params.del(key) 刪除某個參數(shù)

URLSearchParams 新增,修改,刪除參數(shù)

const responseURL  = "http://example.com?user=abc%20test&name=%E5%BC%A0%E4%B8%89"
const queryString = responseURL.split('?')[1];
if(queryString){
  const params = new URLSearchParams(queryString);
  // name存在,更改參數(shù)
  params.set('name', '華佗'); 
  // sex不存在,設置新的參數(shù)  
  params.set('sex', '男'); 
  // 刪除user這個參數(shù)
  params.delete('user')
  console.log(22, params)
}

使用 URLSearchParams 解析參數(shù)

// url還是之前那個參數(shù)
const responseURL  = "http://example.com?user=abc%20test&name=%E5%BC%A0%E4%B8%89"
function parseUrlParams(url) {
  // 分割出查詢參數(shù)部分
  const queryString = url.split('?')[1];
  if (!queryString) return undefined;
 
  // 使用 URLSearchParams 解析參數(shù)
  const params = new URLSearchParams(queryString);
  // 直接獲取 user 參數(shù)值
  return params.get('user'); // 返回 "abc test"
}
console.log(parseUrlParams(responseURL))

URLSearchParams瀏覽器的兼容性

  • Chrome 49+
  • Firefox 18+
  • Edge 14+
  • Safari 10.1+
  • Opera 36+

以上支持。

不支持:Internet Explorer 全系列(包括 IE11)

兼容性處理

const responseURL  = "http://localhost:8088/list/query-list/?aaa=newList&regionDd=12345&user=zhangsan"
function parseUrlParams(url, keyName) {
  try {
    const queryString = url.split('?')[1];
    if (!queryString) return undefined;
    
    // 優(yōu)先使用原生 API
    if (window.URLSearchParams) {
      return new URLSearchParams(queryString).get(keyName);
    }
    // 兼容舊版瀏覽器的解析方案
    const params = {};
    queryString.split('&').forEach(pairItem => {
      const [key, value] = pairItem.split('=');
      params[decodeURIComponent(key)] = decodeURIComponent(value || '');
    });
    return params[keyName];
  } catch (e) {
    console.error('URL 解析失敗:', e);
    return undefined;
  }
}
console.log(parseUrlParams(responseURL, 'aaa'));

到此這篇關于JavaScript使用URLSearchParams優(yōu)雅獲取URL攜帶的參數(shù)的文章就介紹到這了,更多相關JavaScript獲取URL攜帶參數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • ?javascript數(shù)組中的findIndex方法?

    ?javascript數(shù)組中的findIndex方法?

    這篇文章主要介紹了javascript數(shù)組中的findIndex方法,findIndex()?方法返回傳入一個測試條件函數(shù)符合條件的數(shù)組第一個元素位置,下面更多相關資料,需要的小伙伴可以參考一下
    2022-03-03
  • 詳解如何利用JavaScript繪制堆疊柱狀圖

    詳解如何利用JavaScript繪制堆疊柱狀圖

    堆疊柱狀圖將每個柱子進行分割以顯示相同類型下各個數(shù)據(jù)的大小情況??梢孕蜗蟮谜故疽粋€大分類包含的每個小分類的數(shù)據(jù),以及各個小分類的占比,顯示的是單個項目與整體之間的關系。本文將利用JavaScript實現(xiàn)堆疊柱狀圖的繪制,需要的可以參考一下
    2022-03-03
  • ES6基礎之數(shù)組和對象的拓展實例詳解

    ES6基礎之數(shù)組和對象的拓展實例詳解

    這篇文章主要介紹了ES6基礎之數(shù)組和對象的拓展,結合實例形式詳細分析了ES6數(shù)組和對象拓展運算符、拓展方法的使用及相關操作技巧,需要的朋友可以參考下
    2019-08-08
  • 基于JS實現(xiàn)接粽子小游戲的示例代碼

    基于JS實現(xiàn)接粽子小游戲的示例代碼

    端午節(jié)馬上就到了,聽說你們公司沒發(fā)粽子大禮包?沒關系,這里用?JS實現(xiàn)了一個簡單的接粽子小游戲,能接到多少粽子,完全看你手速,快跟隨小編一起來學習學習吧
    2022-05-05
  • JavaScript通過代碼調用Flash顯示的方法

    JavaScript通過代碼調用Flash顯示的方法

    這篇文章主要介紹了JavaScript通過代碼調用Flash顯示的方法,實例分析了JavaScript通過flash插件swfobject.js調用flash顯示的具體操作技巧,需要的朋友可以參考下
    2016-02-02
  • Wordpress ThickBox 點擊圖片顯示下一張圖的修改方法

    Wordpress ThickBox 點擊圖片顯示下一張圖的修改方法

    Wordpress自帶的ThickBox特效中,單擊圖片會調用 tb_remove 以關閉特效窗口,現(xiàn)將修改其動作為顯示下一張圖。
    2010-12-12
  • List Information About the Binary Files Used by an Application

    List Information About the Binary Files Used by an Applicati

    List Information About the Binary Files Used by an Application...
    2007-06-06
  • JavaScript匿名函數(shù)用法分析

    JavaScript匿名函數(shù)用法分析

    這篇文章主要介紹了JavaScript匿名函數(shù)用法,實例分析了匿名函數(shù)的功能、定義及具體用法,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • 微信小程序通過保存圖片分享到朋友圈功能

    微信小程序通過保存圖片分享到朋友圈功能

    小程序內是不能直接分享到朋友圈的。所以只能通過生成圖片,攜帶小程序二維碼,保存到手機相冊,讓用戶自己選擇發(fā)到朋友圈。然后可以通過在小程序中識別二維碼來進入小程序的指定頁面。下面小編給大家分享實現(xiàn)代碼,需要的朋友參考下吧
    2018-05-05
  • 微信小程序選擇圖片和放大預覽圖片功能

    微信小程序選擇圖片和放大預覽圖片功能

    這篇文章主要介紹了微信小程序圖片放大預覽功能的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11

最新評論