JSFiddle - React, Tailwind, and code Playground
by bluey
HTML
<p id="result1"></p>
<p id="result2"></p>
<p id="result3"></p>
JavaScript
function addParam(url, param, value) {
var a = document.createElement('a'), regex = /[?&]([^=]+)=([^&]*)/g;
var params = {}, match, str = []; a.href = url; value=value||"";
while (match = regex.exec(a.search))
if (param != match[1]) str.push(match[1] + "=" + match[2]);
str.push(encodeURIComponent(param) + "=" + encodeURIComponent(value));
a.search = (a.search.substring(0,1) == "?" ? "" : "?") + str.join("&");
return a.href;
}
url = "http://www.example.com?foo=bar#hashme";
result1 = document.getElementById("result1");
result1.innerHTML = addParam(url, "ciao", "1");
url = "http://www.example.com#hashme";
result2 = document.getElementById("result2");
result2.innerHTML = addParam(url, "ciao", "1 l'app");
url = "http://www.example.com?foo=bar&pippo=pluto#hashme";
result3 = document.getElementById("result3");
result3.innerHTML = addParam(url, "ciao2");
url = "http://www.example.com?foo=bar&pippo=pluto#hashme";
result3 = document.getElementById("result3");
result3.innerHTML = addParam(result3.innerHTML, "ciao1", "1èéê");