JavaScript >> Javascript 文檔 >  >> Tags >> string

如何在 JavaScript 中獲取查詢字符串參數

在之前的文章中,我們了解瞭如何使用 URLSearchParams 添加和更新查詢字符串參數 在 JavaScript 中。今天,你將學習如何在 JavaScript 中從 URL 中獲取查詢字符串參數。

要從當前瀏覽器 URL 中獲取完整的查詢字符串,可以使用 window.location.search

// URL: http://example.com?size=M&size=XL&price=29&sort=desc

console.log(window.location.search);
// ?size=M&size=XL&price=29&sort=desc

創建 URLSearchParams 的實例 ,只需將完整的查詢字符串傳遞給它的構造函數:

const params = new URLSearchParams(window.location.search);

URLSearchParams 提供了幾種可用於操作查詢字符串參數的方法:

// get parameter
params.get('price');    // 29

// get multi-valued parameter
params.getAll('size');    // [ 'M', 'XL' ]

// check if parameter exists
params.has('sort');    // true

// iterate over all parameters
for (const p of params) {
    console.log(p);
    
}

// [ 'size', 'M' ]
// [ 'size', 'XL' ]
// [ 'price', '29' ]
// [ 'sort', 'desc' ]

URLSearchParams 是處理查詢字符串的理想解決方案,但並非所有瀏覽器都支持。如果你想支持像 Internet Explorer 這樣的舊瀏覽器,可以使用 polyfill。

或者,您可以編寫一個小的 JavaScript 函數,接收查詢字符串參數名稱並返回其值:

function queryParam(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(window.location.search);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}

queryParam('price');    // 29
queryParam('sort');    // desc

Tutorial JavaScript 教程
  1. FullStack - 如何在 2021 年創建一個使用純 HTML、CSS 和 JS 的工作博客網站。

  2. 在 NativeScript 中處理音頻 - 第一部分

  3. 面向對象的 JavaScript 第 4 部分

  4. RecoilJS 的狀態

  5. 使用 VueJS 自定義 OTP 輸入組件

  6. three.js - 如何動態更改對象的不透明度?

  7. 100 天代碼的第 6 天

  1. 如何將 JavaScript 變量輸出存儲到 PHP 變量中?

  2. 使用 Mongoose 設置 Express API

  3. 解析 JSON 是否比解析 XML 更快

  4. JavaScript 中的高階函數——在你的 JS 代碼中達到新的高度

  5. JavaScript 過濾器數組:使用 Javascript Filter() 方法過濾數組

  6. 介紹服務綁定運算符

  7. 適合所有人的 Vue 和 Nuxt 技巧

  1. 解耦您的應用層

  2. VueJS+NodeJS 常青菜譜

  3. 使用異步函數簡化異步編碼

  4. 如何在 JavaScript 中正確記錄對象?