js修改url中某个指定的参数的值

当一个页面上的搜索条件很多而且需要进行联合get查询的时候,我们按照一定的规则将其组织为一个正确的url这是没有问题的,但是当这个联合查询可以无限制的进行下去的话,你该如何组织你的url呢?无限制的在当前的url后面附加你的查询参数吗?很显然这是不科学的。下面分享一个办法可以直接修改当前url中的某个参数的值而不会导致这个url中同一个参数存在多个值的情况。这在一定程度上就将url的长度控制到了最短。既人性化又利于搜索引擎的优化。下面是利用javascript修改url中某个参数的值的具体思路:

  1. /* 
  2. * url 目标url 
  3. * arg 需要替换的参数名称 
  4. * arg_val 替换后的参数的值 
  5. * return url 参数替换后的url 
  6. */ 
  7. function changeURLArg(url,arg,arg_val){ 
  8.     var pattern=arg+'=([^&]*)'
  9.     var replaceText=arg+'='+arg_val; 
  10.     if(url.match(pattern)){ 
  11.         var tmp='/('+ arg+'=)([^&]*)/gi'
  12.         tmp=url.replace(eval(tmp),replaceText); 
  13.         return tmp; 
  14.     }else
  15.         if(url.match('[\?]')){ 
  16.             return url+'&'+replaceText; 
  17.         }else
  18.             return url+'?'+replaceText; 
  19.         } 
  20.     } 
  21.     return url+'\n'+arg+'\n'+arg_val; 

使用方法如下:

  1. changeURLArg('http://www.daimajiayuan.com/test.php?class_id=3&id=2','class_id',4); 

结果即为:http://www.daimajiayuan.com/test.php?class_id=4&id=2

转载请注明:代码家园 » js修改url中某个指定的参数的值

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)