欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 獲取query

陳好昌1年前8瀏覽0評論

JavaScript獲取query是前端開發必備技能之一。query是指url中"?"后面的參數,我們經常在網址中看到"?"的形式,例如:https://www.baidu.com/s?wd=JavaScript&rsv_spt=1&rsv_iqid=0x9b50f81500026fa1&rsv_t=9d77LTEt2fqlbJJMk4n%2BG5qlqdHkZFQK9Mx1CjzkDJnmxcMB1TNGSgYzrczqT8GJwu0i",其中 "wd=JavaScript&rsv_spt=1&rsv_iqid=0x9b50f81500026fa1&rsv_t=9d77LTEt2fqlbJJMk4n%2BG5qlqdHkZFQK9Mx1CjzkDJnmxcMB1TNGSgYzrczqT8GJwu0i"就是query。獲取query非常常見的應用場景是做搜索框,也可以通過query來進行其他的頁面跳轉等操作。下面我們就來詳細介紹一下JavaScript獲取query的方法。

方法一:使用location.search獲取query。

//獲取url中的query
var query = location.search.substring(1); 
console.log(query);

方法二:使用正則表達式獲取query。

//使用正則表達式獲取query的鍵值對
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null) return  unescape(r[2]); return null;

方法三:使用URLSearchParams。

//使用URLSearchParams獲取query
const params = new URLSearchParams(window.location.search)
console.log(params.get('name'))

以上三種方法都可以很方便地獲取URL中的query,但是需要注意的是,使用正則表達式獲取query在處理較為復雜的URL時可能出現錯誤,因此建議在簡單的場景下使用。

在獲取query后,我們還可以對query做進一步的處理,例如獲取某個參數的值,或者將query轉換成對象等操作。下面是一些示例:

例如,我們需要獲取名字為"name"的參數值:

var query = location.search.substring(1); 
var name = query.split('=')[1];
console.log(name);

我們也可以把query轉換成一個鍵值對的對象:

function parseQueryString(query) {
var reg = /([^=&\s]+)[=\s]*([^&\s]*)/g;
var obj = {};
while (reg.exec(query)) {
obj[RegExp.$1] = RegExp.$2;
}
return obj;
}
console.log(parseQueryString(location.search.substring(1)));

以上是一些常見的操作,當然還有其他較為高級的處理方法,比如將query解析成數組等。掌握了JavaScript獲取query的方法,我們就可以更加便捷地操作URL中的參數,提高效率,同時也為自己的前端開發能力加分。