nortmas
5/8/2014 - 1:53 PM

Parse url function

Parse url function

function parse_url(url) {
  var queryObj = {},
      a = document.createElement('a');

  a.href = url;

  var query = a.search.substring(1);

  if (query) {

    var vars = query.split("&");

    a.href = url;

    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");

      if (typeof queryObj[pair[0]] === "undefined") {
        queryObj[pair[0]] = pair[1];
      }
      else if (typeof queryObj[pair[0]] === "string") {
        var arr = [ queryObj[pair[0]], pair[1] ];
        queryObj[pair[0]] = arr;
      }
      else {
        queryObj[pair[0]].push(pair[1]);
      }
    }
  }

  return {
    path: a.pathname.replace(/^([^\/])/, '/$1'),
    query: queryObj,
    segments: a.pathname.replace(/^\//, '').split('/'),
    hash: a.hash
  };
}