url的query解析


期望輸出

獲取到所有的 query 參數,組成一個對象。

const url = 'http://domain.com/?user=anonymous&city=chengdu'

parseParam(url)

 

結果:

{

  user:'liujiaqi',

  city: 'yichang'

}

解題分析:

1.使用 & 對字符串進行分割,得到數組

2.去掉數組第一個值 ? 前的字符

3.遍歷數組獲取對應的 key 和 value

                 數組類型的參數,需要判斷特殊處理

                 對象類型的參數,也需要特殊處理

const parseParam = (url) => {
    // 分割URL
    let paramArrays = url.split("&");
    // 去除第一個值中的域名
    paramArrays[0] = paramArrays[0].split("?")
    paramArrays[0].shift()
    paramArrays[0] = paramArrays[0].join('?');
    console.log('paramArrays', paramArrays);
    // 定義一個空對象接收 key 和 value
    const obj = {}
    paramArrays.forEach(ele => {
        const itemArr = ele.split('=')
        let key = itemArr[0]
        let val = itemArr[1]
        let arr = []
        if (key.includes('[]')) {
            key = key.replace('[]', '')
            arr.push(val)
        } else if (val.indexOf('{') === 0) {
            val = JSON.parse(val)
        }
        obj[key] = val
        console.log('obj', obj);
    });
}

 


免責聲明!

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



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