JavaScriptmediumJavaScript

URL Query Parser

Parses URL query parameters into an object

01

The problem

Need to parse URL query strings into JavaScript objects

02

The solution

JavaScript
function parseQueryString(queryString) {
  if (!queryString) return {};
  
  // Remove leading ? or #
  queryString = queryString.replace(/^[?#]/, '');
  
  return queryString.split('&').reduce((params, param) => {
    const [key, value] = param.split('=');
    if (key) {
      params[decodeURIComponent(key)] = value ? decodeURIComponent(value) : true;
    }
    return params;
  }, {});
}

// Alternative: Parse from URL
function getQueryParams(url = window.location.search) {
  return parseQueryString(url);
}

03

Parameters

queryStringstring

Query string to parse

04

Put it to work

Example
const query = parseQueryString('?name=John&age=30&admin');
console.log(query);
// { name: "John", age: "30", admin: true }

// Parse current URL
const currentQuery = getQueryParams();
console.log(currentQuery);

// Build query string from object
const params = { search: 'test', page: 2 };
const queryStr = new URLSearchParams(params).toString();
console.log(queryStr); // "search=test&page=2"