javascript Publicado por: 2

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)

2 Comentarios

  1. manuel bencomo

    hola, tengo una duda ya que soy nuevo en js.

    mi dilema es que tengo varias urls y con tistintos destinos y todas empiesan por «https://lh3.googleusercontent.com» y el reto de la url continua despues de «/»
    lo que estoy nesecitando es que la primera parte de la url que es la misma para todos los enlaces se almacene y que el el resto de la misma se copie en un enlace y que al hacer click se unan o se sume la parte 1 y la 2 para ir al sitio sin importar donde me encuentre, que solo haga click y se ejecute el resultado esperado.

    por supuesto, son varias url y nesecito que todas ellas vayan a distientos

    1. Administrador Microteching Autor del artículo

      Entiendo que para esto no necesitas JS, no?
      Solo tienes que poner los enlaces con rutas relativas, es decir, en los «a» poner el «href» como «/destino» o «/destino.html» sin preocuparte de la parte del dominio…
      Tal vez, si nos cuentas un poco más el contexto de tu problema te podré ayudar mejor…. por si te sirve… a nivel de JS también se puede hacer algo como:
      var base_url = «https://lh3.xxxx/»
      function go_to(page)
      {
      return base_url + page;
      o
      document.location.href = base_url + page;
      }
      no se…
      por si te ayuda….

      Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.