Jak mohu přidat nebo aktualizovat parametr řetězce dotazu?

Jak mohu pomocí javascriptu přidat parametr řetězce dotazu do adresy URL, pokud není přítomen, nebo pokud existuje, aktualizovat aktuální hodnotu? Používám jquery pro vývoj na straně klienta.

Odpověď

Napsal jsem následující funkci, která splňuje to, čeho chci dosáhnout:

function updateQueryStringParameter(uri, key, value) {
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}