JSFiddle - React, Tailwind, and code Playground
JavaScript
var URLParser = function (url) {
this.url = url || window.location.href;
this.urlObject = this.parse();
};
URLParser.prototype = {
constructor : URLParser,
parse : function (url) {
var tempArr,
item,
i,
returnObj = {};
this.url = url || this.url;
tempArr = this.url.split("?");
returnObj.baseURL = tempArr[0];
returnObj.params = {};
if (tempArr.length > 1) {
returnObj.queryString = tempArr[1];
tempArr = tempArr[1].split("&");
for (i = 0; i < tempArr.length; i++) {
item = tempArr[i].split("=");
returnObj.params[item[0]] = item[1];
}
} else {
returnObj.queryString = "";
}
return returnObj;
},
toString : function () {
var strURL = this.urlObject.baseURL + "?",
paramObj = this.urlObject.params,
prop;
for (prop in paramObj) {
if (paramObj.hasOwnProperty(prop)) {
strURL += prop + "=" + paramObj[prop] + "&";
}
}
return strURL.substr(0, strURL.length - 1);
},
removeParams : function (removeArray) {
var paramObj = this.urlObject.params,
key,
i;
if (removeArray instanceof Array) {
for (i = 0; i < removeArray.length; i++) {
key = removeArray[i];
if (paramObj.hasOwnProperty(key)) {
delete paramObj[key];
}
}
}
},
addParams : function (paramObj) {
var params = this.urlObject.params,
key;
if (typeof paramObj === "object") {
for (key in paramObj) {
if (paramObj.hasOwnProperty(key)) {
params[key] = paramObj[key];
}
}
}
}
};
var up = new URLParser();
var urlObj =...