我有URL是 index.php?a_id=123&pid=333
我想用JS 
 给a_id 或是pid换值 
换成 a_id=4444&pid=333
就是换其中一个的时候  不影响 其它的
求JS 写法
我大概知道 是正则 可是我写了没用 求教 

解决方案 »

  1.   

    url = url.replace(/a_id=\d*/, "a_id=4444").replace(/pid=\d*/, "pid=333");
      

  2.   

    问题 这个a_id   pid 是可变的 是JS传过来的字符串变量.这个应该怎么写? switch(newags)
     {
     case "a_id":
      nn =params[0].replace(/a_id=\d*/, "a_id="+newid);
      break;
      
     }
    这是笨办法  但是这个参数名很多 不一定叫啥....
      

  3.   


       //当前url index.php?a_id=123&sid=33, 有可能添加参数 比如加 &jd=44545,也有可能把有的参数给换掉....我这样写貌似不对
      var newags=params[1].split("=")[0];
      var newid=params[1].split("=")[1];
      var newurl=SITE_URL + '/index.php?' ;
      var  reg = new RegExp("^[0-9]*$");
      if(params[0].indexOf(newags)>0)
      {
      alert(params[0]);
        var pa= '/'+newags+'=\d*/';
    var newsurl =params[0].replace(eval(pa), "a_id="+newid);
        newurl+=newsurl ;
    return;
      }
      else{
       newurl+= params.join('&');
     }
        location.assign(newurl);
      

  4.   

    params[0] 就是后面的 index.php?a_id=123&sid=33
      

  5.   

    var url = "index.php?a_id=123&pid=333";//location.href;
    var newags = "a_id";
    var val = "4444";
    url=url.replace(new RegExp("([?&]"+newags+"=)[^&]*","i"),"$1"+val);
    alert(url);