remplacer un paramètre dans une url

recette(s) semblable(s): javascript | regex

J'ai eu à faire aujourd'hui un travail en JavaScript, où je passais des variables par URL via un bout de javascript. Une des variables que je devais passer a l'URL pouvait être déjà présente dans l'url, il fallait donc la rechercher et la remplacer et sinon l'ajouter.

  //js 
<script type="text/javascript" >
    function replaceUrlParams(url,param,value) {
        var rx = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
        if (url.match(rx)) return url.replace(rx,'$1' + param + "=" + value + '$2');
        else return url + '&' + param + "=" + value;
    }
</script>   

 on peut changer en fonction de la valeur contenu dans un select:

 // html
    <select onchange="window.location = replaceUrlParams(window.location+'','param',this.value)">        
            <option> param_1</option>
            <option> param_2</option>
            <option> param_3</option>       
    </select>