將url參數轉為對象


例如:https://www.baidu.com/baidu?name=aaa&age=20
我們想把參數轉變成對象,以備隨時使用,現推薦兩種方法
方法一:
let urlToJson = (url = window.location.href) => {  // 箭頭函數默認傳值為當前頁面url
   
    let obj = {}, 
    index = url.indexOf('?'), // 看url有沒有參數
    params = url.substr(index + 1); // 截取url參數部分 name = aaa & age = 20

    if(index != -1) { // 有參數時
        let parr = params.split('&');  // 將參數分割成數組 ["name = aaa", "age = 20"]
        for(let i of parr) {           // 遍歷數組
            let arr = i.split('=');  // 1) i name = aaa   arr = [name, aaa]  2)i age = 20  arr = [age, 20]
            obj[arr[0]] = arr[1];  // obj[arr[0]] = name, obj.name = aaa   obj[arr[0]] = age, obj.age = 20
        }
    }
    
    return obj;  
}

方法二:

首先獲取URL后面的參數
var keywords=window.location.search;//結果:'?name=aaa&age=20' 
var keywords=window.location.search.substr(1);//結果:'name=aaa&age=20'
開始替換:

var result = keywords.replace(/&/g, '","').replace(/=/g, '":"');

‘/g’這里表示所有,replace(/&/g, ‘","’),這里表示 把所有的&都換成 “,”

補上首尾缺失的部分:

var reqDataString = '{"' + result + '"}';

最后json字符串搞定,需要轉成json對象

JSON.parse(reqDataString);

當然,這里還需要做一個 沒有 帶參數的判斷

完整代碼如下:
var keywords = window.location.search.substr(1);
var result = keywords.replace(/&/g, '","').replace(/=/g, '":"');
var reqDataString = '{"' + result + '"}';
var obj = JSON.parse(reqDataString); 

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM