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

JavaScript?中URL?查詢字符串(query?string)的序列與反序列化的方法

 更新時(shí)間:2023年01月11日 08:35:18   作者:yuzhihui  
在 JavaScript 中,可以使用?URLSearchParams?對(duì)象來處理 URL 中的查詢字符串,這篇文章主要介紹了JavaScript?中URL查詢字符串(query?string)的序列與反序列化,需要的朋友可以參考下

方法一:

在 JavaScript 中,可以使用 URLSearchParams 對(duì)象來處理 URL 中的查詢字符串。

序列化(將 JavaScript 對(duì)象轉(zhuǎn)換為查詢字符串)可以使用 URLSearchParams 對(duì)象的 append() 方法,如下所示:

let params = new URLSearchParams();
params.append('name', 'John');
params.append('age', '30');
let queryString = params.toString();
console.log(queryString); 

反序列化(將查詢字符串轉(zhuǎn)換為 JavaScript 對(duì)象)可以使用 URLSearchParams 的構(gòu)造函數(shù),如下所示:

let queryString = "name=John&age=30";
let params = new URLSearchParams(queryString);
console.log(params.get('name')); // "John"
console.log(params.get('age')); // "30"

對(duì)于反序列化的操作可以使用URL的search屬性,來解析query string

let url = new URL('https://example.com?name=John&age=30');
let params = new URLSearchParams(url.search);
console.log(params.get('name')); // "John"
console.log(params.get('age')); // "30"

需要注意的是,URLSearchParams 對(duì)象只能用于處理查詢字符串,而不能用于創(chuàng)建或解析整個(gè) URL。

如果需要更高級(jí)的處理方式,可以使用其它庫或第三方函數(shù)庫,比如 qs, querystring 等庫來處理。

對(duì)于反序列化的操作中的URLSearchParams的使用還有一些方法,比如:

  • has(name): 返回一個(gè) Boolean 值,表示是否存在名稱為 name 的查詢參數(shù)。
  • get(name): 返回名稱為 name 的查詢參數(shù)的值,如果不存在,則返回 null。
  • getAll(name): 返回所有名稱為 name 的查詢參數(shù)的值組成的數(shù)組,如果不存在,則返回空數(shù)組。
  • set(name, value): 設(shè)置名稱為 name 的查詢參數(shù)的值為 value。如果已經(jīng)存在同名參數(shù),將會(huì)覆蓋原來的值。
  • append(name, value): 添加名稱為 name 的查詢參數(shù),并設(shè)置其值為 value。如果已經(jīng)存在同名參數(shù),會(huì)添加一個(gè)新的參數(shù)。
  • delete(name): 刪除名稱為 name 的查詢參數(shù)。
  • entries(): 返回一個(gè)迭代器,遍歷所有查詢參數(shù)的鍵值對(duì)。
  • keys(): 返回一個(gè)迭代器,遍歷所有查詢參數(shù)的名稱。
  • values(): 返回一個(gè)迭代器,遍歷所有查詢參數(shù)的值。

這些方法都能給出更靈活的操作,請(qǐng)根據(jù)具體需求來選擇使用

方法二:

當(dāng)然,如果需要手動(dòng)處理查詢字符串,也可以使用 JavaScript 的標(biāo)準(zhǔn)字符串處理函數(shù)來實(shí)現(xiàn)。

序列化,可以使用下面的代碼把一個(gè)對(duì)象轉(zhuǎn)換為查詢字符串:

function objectToQueryString(obj) {
  return Object.entries(obj).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');
}
console.log(objectToQueryString({name: 'John', age: '30'}))

反序列化,可以使用下面的代碼把查詢字符串轉(zhuǎn)換為一個(gè)對(duì)象:

function queryStringToObject(queryString) {
  let obj = {};
  let arr = queryString.split("&");
  for(let i = 0; i < arr.length; i++){
    let temp = arr[i].split("=");
    obj[temp[0]] = temp[1];
  }
  return obj;
}
console.log(queryStringToObject('name=John&age=30'))

需要注意的是,上述代碼使用了 encodeURIComponent 和 decodeURIComponent 來編碼和解碼查詢字符串中的字符,以防止出現(xiàn)無效或不安全的字符。

這些方法都能達(dá)到相同的目的,你可以根據(jù)項(xiàng)目中使用的JavaScript環(huán)境和需要的復(fù)雜度來進(jìn)行選擇

到此這篇關(guān)于JavaScript 中URL 查詢字符串(query string)的序列與反序列化的文章就介紹到這了,更多相關(guān)js url查詢字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • LayUi數(shù)據(jù)表格自定義賦值方式

    LayUi數(shù)據(jù)表格自定義賦值方式

    今天小編就為大家分享一篇LayUi數(shù)據(jù)表格自定義賦值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • CocosCreator ScrollView優(yōu)化系列之分幀加載

    CocosCreator ScrollView優(yōu)化系列之分幀加載

    這篇文章主要介紹了CocosCreator ScrollView的優(yōu)化,從分幀加載進(jìn)行了講解,對(duì)性能優(yōu)化感興趣的同學(xué),一定要看一下
    2021-04-04
  • 小程序雙頭slider選擇器的實(shí)現(xiàn)示例

    小程序雙頭slider選擇器的實(shí)現(xiàn)示例

    這篇文章主要介紹了小程序雙頭slider選擇器的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • js格式化輸入框內(nèi)金額、銀行卡號(hào)

    js格式化輸入框內(nèi)金額、銀行卡號(hào)

    這篇文章主要介紹了js格式化輸入框內(nèi)金額、銀行卡號(hào),采用“keyup”事件處理格式化,每4位數(shù)一組中間空格隔開,如何格式化輸入框內(nèi)金額、銀行卡號(hào),需要了解的朋友可以參考一下
    2016-02-02
  • JavaScript動(dòng)態(tài)改變div屬性的實(shí)現(xiàn)方法

    JavaScript動(dòng)態(tài)改變div屬性的實(shí)現(xiàn)方法

    這篇文章主要介紹了JavaScript動(dòng)態(tài)改變div屬性的實(shí)現(xiàn)方法,涉及javascript操作頁面div元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • JavaScript組合模式Composite Pattern

    JavaScript組合模式Composite Pattern

    這篇文章主要介紹了學(xué)習(xí)理解JavaScript組合模式,組合模式及Composite Pattern又叫部分整體模式,是用于把一組相似的對(duì)象當(dāng)作一個(gè)單一的對(duì)象
    2022-04-04
  • js實(shí)現(xiàn)圖片漂浮效果的方法

    js實(shí)現(xiàn)圖片漂浮效果的方法

    這篇文章主要介紹了js實(shí)現(xiàn)圖片漂浮效果的方法,實(shí)例分析了javascript實(shí)現(xiàn)圖片漂浮的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • js實(shí)現(xiàn)input密碼框提示信息的方法(附html5實(shí)現(xiàn)方法)

    js實(shí)現(xiàn)input密碼框提示信息的方法(附html5實(shí)現(xiàn)方法)

    這篇文章主要介紹了js實(shí)現(xiàn)input密碼框提示信息的方法,涉及JavaScript頁面元素的獲取,屬性判斷及樣式設(shè)置等技巧,并附帶html5的相關(guān)實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-01-01
  • JS 特殊運(yùn)算符的使用

    JS 特殊運(yùn)算符的使用

    JavaScript中包含了一系列不常見但功能強(qiáng)大的特殊運(yùn)算符,如空值合并運(yùn)算符(??)、可選鏈運(yùn)算符(?.)等,這些運(yùn)算符在特定場景下極大地簡化了代碼的復(fù)雜度,并提高了開發(fā)效率,通過深入了解這些特殊運(yùn)算符,開發(fā)者可以更加高效地處理各種數(shù)據(jù)和邏輯
    2024-09-09
  • 無編譯/無服務(wù)器實(shí)現(xiàn)瀏覽器的CommonJS模塊化

    無編譯/無服務(wù)器實(shí)現(xiàn)瀏覽器的CommonJS模塊化

    這篇文章主要介紹了無編譯/無服務(wù)器實(shí)現(xiàn)瀏覽器的CommonJS模塊化,對(duì)模塊化感興趣的同學(xué),可以參考下
    2021-05-05

最新評(píng)論