Reemplazar parámetro de una url por javascript

javascript

Este tipo de funciones que trabajan con cadenas de texto más o menos complejas como lo pueda ser una ‘url’, siempre son tediosas de hacer, y para algunos son todo un suplicio.

Seguro que hay mil maneras de hacer lo mismo que hace esta función, pero bueno, es una alternativa más, además, sin usar jquery ni ningún otro plugin o framework adicional.

Ahí va:

function replace_url_param(url, param_name, new_value)
{
    var base = url.substr(0, url.indexOf('?'));
    var query = url.substr(url.indexOf('?')+1, url.length);
    var a_query = query.split('&');
    for(var i=0; i < a_query.length; i++){
        var name = a_query[i].split('=')[0];
        var value = a_query[i].split('=')[1];
        if (name == param_name) a_query[i] = param_name+'='+new_value;
    }
    return base + '?' + a_query.join('&');
}

Esperamos que os sea útil.
(No dudéis en comentar otras alternativas, que seguro que son muy interesantes)