JSFiddle - React, Tailwind, and code Playground
by minagabriel
JavaScript
function p(p) { console.log(p); }
var testQueries =
[
"https://www.google.com/search?sugexp=chrome,mod=1&sourceid=chrome&ie=UTF-8&q=how+to+get+url+params",
"ALM_frmTopAlarmHistoryReport.aspx?strAlarmConnection=Blend2Alarms&strType=1&intCategory=0&msec=34&tabtitle=Top+Blend+2+Alarms&tabapp=Alarms "
];
function split(query) {
var queryString = {};
var parts = extractQueryString(query, extractQueryStringRegular);
if (!parts) {
parts = extractQueryString(query, extractQueryStringHashed);
}
if (!parts) return null;
var queryStringPairs = parts[1].split("&");
if (queryStringPairs.length == 1 && queryStringPairs[0] === "") {
return null;
}
for (var i = 0, len = queryStringPairs.length; i < len; i++) {
var queryItem = queryStringPairs[i].split("=");
var queryName = decodeURIComponent(queryItem[0]);
var queryValue = decodeURIComponent(queryItem[1]);
if (queryName.length) {
queryString[queryName] = queryValue;
}
}
return queryString;
}
function extractQueryString(query, splitterFn) {
if (null == query || undefined == query)
return null;
var result = splitterFn(query);
if (result.length != 2) {
return null;
}
return result;
}
function extractQueryStringHashed(query) {
return query.split("#");
}
function extractQueryStringRegular(query) {
return query.split("?");
}
for (var i = 0, len = testQueries.length; i < len; i++) {
var result = split(testQueries[i]);
p(result);
}