Skip to content

Instantly share code, notes, and snippets.

@devudit
Created May 25, 2017 06:16
Show Gist options
  • Select an option

  • Save devudit/a417e8ccb402552321b1d184f4cc8a44 to your computer and use it in GitHub Desktop.

Select an option

Save devudit/a417e8ccb402552321b1d184f4cc8a44 to your computer and use it in GitHub Desktop.
How to get Query String using javascript
/**
* @description Below function will return a object of query string variable
**/
var QueryString = function () {
// This function is anonymous, is executed immediately and
// the return value is assigned to QueryString!
var query_string = {};
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
// If first entry with this name
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = decodeURIComponent(pair[1]);
// If second entry with this name
} else if (typeof query_string[pair[0]] === "string") {
var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];
query_string[pair[0]] = arr;
// If third or later entry with this name
} else {
query_string[pair[0]].push(decodeURIComponent(pair[1]));
}
}
return query_string;
}();
/*
* @description Below function will return parameter by name
* @param name of query strring variable
* @param url having query string
*/
function getParameterByName(name, url) {
if (!url) url = window.location.href;
url = url.toLowerCase();
name = name.replace(/[\[\]]/g, "\\$&").toLowerCase();
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
/*
* @description Remove query string variable
* @param url having query string
* @param parameter to remove form query string
*/
function removeURLParameter(url, parameter) {
//prefer to use l.search if you have a location/link object
var urlparts= url.split('?');
if (urlparts.length>=2) {
var prefix= encodeURIComponent(parameter)+'=';
var pars= urlparts[1].split(/[&;]/g);
//reverse iteration as may be destructive
for (var i= pars.length; i-- > 0;) {
//idiom for string.startsWith
if (pars[i].lastIndexOf(prefix, 0) !== -1) {
pars.splice(i, 1);
}
}
url= urlparts[0] + (pars.length > 0 ? '?' + pars.join('&') : "");
return url;
} else {
return url;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment