remove parameter from url

https://stackoverflow.com/questions/1634748/how-can-i-delete-a-query-string-parameter-in-javascript?answertab=votes#

by contact

HTML

Do not forget to open console.

JavaScript

function removeParamFromUrl(url, param) {  // url: string, param: string
  var urlParts = url.split('?'),
      preservedQueryParams = '';

  if (urlParts.length === 2) {
    preservedQueryParams = urlParts[1]
      .split('&')
      .filter(function(queryParam) {
        return !(queryParam === param || queryParam.indexOf(param + '=') === 0)
      })
      .join('&');
  }

  return urlParts[0] +  (preservedQueryParams && '?' + preservedQueryParams); 
}


function removeParamFromUrlEs6(url, param) {
  const [path, queryParams] = url.split('?');
	let preservedQueryParams = '';

  if (queryParams) {
    preservedQueryParams = queryParams
      .split('&')
      .filter(queryParam => !(queryParam === param || queryParam.startsWith(`${param}=`)))
      .join('&');
  }

  return `${path}${preservedQueryParams && `?${preservedQueryParams}`}`;  
}

console.log('ES5 version');
console.log(removeParamFromUrl('http://google.com', 'qp'));
console.log(removeParamFromUrl('http://google.com?qp', 'qp'));
console.log(removeParamFromUrl('http://google.com?qp=1', 'qp'));
console.log(removeParamFromUrl('http://google.com?qpqp=2&qp=1', 'qp'));
console.log(removeParamFromUrl('http://google.com?qp=1&qpqp=2&qp=1', 'qp'));
console.log(removeParamFromUrl('http://google.com?qp', 'bla'));

console.log('ES6 version');
console.log(removeParamFromUrlEs6('http://google.com', 'qp'));
console.log(removeParamFromUrlEs6('http://google.com?qp', 'qp'));
console.log(removeParamFromUrlEs6('http://google.com?qp=1', 'qp'));
console.log(removeParamFromUrlEs6('http://google.com?qpqp=2&qp=1', 'qp'));
console.log(removeParamFromUrlEs6('http://google.com?qp=1&qpqp=2&qp=1', 'qp'));
console.log(removeParamFromUrlEs6('http://google.com?qp', 'bla'));