博客 / 詳情

返回

js解析url的三種方法

js解析url,將如下url中的參數解析為key-value對象
https://mp.weixin.qq.com/adva...

方法1,split() + 循環依次取出

parseURLParams(url) {
    let queryParams = {}
    // 判斷是否有參數
    if (url.indexOf('?') < 0) return queryParams
    // 分離域名和參數
    let domainAndParams = url.split('?')
    // 參數切分
    let queryStr = domainAndParams[1]
    let queryItems = queryStr.split('&')
    // 循環參數,把參數轉為鍵值對
    queryItems.forEach(item => {
        let paramKV = item.split('=')
        queryParams[paramKV[0]] = paramKV[1]
    })
    // 返回參數鍵值對
    return queryParams
}

方法2,正則 + arguments

parseURLParams(url) {
    let queryParams = {}
    // 正則匹配規則
    let reg = /([^?=&]+)=([^?=&]+)/g
    // 利用replace替換
    url.replace(reg, function() {
        // 用偽數組進行鍵值對拼接
        queryParams[arguments[1]] = arguments[2]
    })
    // 返回參數鍵值對
    return queryParams
}

方法3,正則 + ...arg

parseURLParams(url) {
    let queryParams = {}
    // 正則匹配規則
    let reg = /([^?=&]+)=([^?=&]+)/g
    // 利用replace替換
    url.replace(reg, function() {
        // 用偽數組進行鍵值對拼接
        queryParams[arguments[1]] = arguments[2]
    })
    // 返回參數鍵值對
    return queryParams
user avatar suporka 頭像 niumingxin 頭像 mrqueue 頭像 mapvthree 頭像 xuriliang 頭像 clearlove07 頭像 513928731 頭像 air_clou_d 頭像 darkcode 頭像 zpfei 頭像 taoqun 頭像 yxaw 頭像
55 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.