獲取 url 並解析生成包含查詢串參數的對象

頁面的 URL 地址能夠經過 location.url 取得,舉個例子,好比 https://www.example.com/path?name1=value1&name2=value2#topjavascript

這時根據 URL 中的 ?#& 特徵字符,充分利用好 split() 字符串分割方法將整個 URL 逐漸剝離成以查詢串參數組成的數組,最後仍是使用 split() 方法根據 = 字符分割出查詢串參數的 keyvaluejava

注意要對查詢串參數進行解碼(decode),由於 URL 中可能會有被編碼過的特殊字符。數組

// 經過 location.url 屬性獲取 url,下面是個示例
var url = 'https://www.example.com/path?name1=value1&name2=value2#top';
function parseQueryStr (url) {
  var arr = url.split('?'),
      res = {};
  if (!arr[1]) {
    return res;
  }
  var tempArr = arr[1].split('#')[0].split('&');
  tempArr.forEach(function (item) {
    var query = item.split('=');
    res[decodeURIComponent(query[0])] = decodeURIComponent(query[1]);
  });
  return res;
}
console.log(parseQueryStr(url));    // {name1: "value1", name2: "value2"}
複製代碼
相關文章
相關標籤/搜索