在实际应用中,可能需要替换url中参数的内容,下面就是一段能够实现此功能的代码实例,寄希望能够帮到有类似需求的朋友。
代码实例如下:
   [ 其他 ] 运行代码    下载代码
<script>
function parseURL(url){ 
  var a = document.createElement('a'); 
  a.href = url; 
  return { 
    source: url, 
    protocol: a.protocol.replace(':', ''), 
    host: a.hostname, 
    port: a.port, 
    query: a.search, 
    params: (function () { 
      var ret = {}, 
      seg = a.search.replace(/^\\?/, '').split('&'), 
      len = seg.length, i = 0, s; 
      for (; i < len; i++) 
      { 
        if (!seg[i]) { continue; } 
        s = seg[i].split('=');
        ret[s[0]] = s[1]; 
      } 
      return ret; 
    })(), 
    file: (a.pathname.match(/\\/([^\\/?#]+)$/i) || [, ''])[1], 
    hash: a.hash.replace('#', ''), 
    path: a.pathname.replace(/^([^\\/])/, '/$1'), 
    relative: (a.href.match(/tps?:\\/\\/[^\\/]+(.+)/) || [, ''])[1], 
    segments: a.pathname.replace(/^\\//, '').split('/') 
  }; 
} 
//替换myUrl中的同名参数值 
function replaceUrlParams(myUrl, newParams) { 
  for (var x in newParams) 
  { 
    var hasInMyUrlParams = false; 
    for (var y in myUrl.params) 
    { 
      if (x.toLowerCase() == y.toLowerCase()) 
      { 
        myUrl.params[y] = newParams[x]; 
        hasInMyUrlParams = true; 
        break; 
      } 
    } 
    //原来没有的参数则追加 
    if (!hasInMyUrlParams) 
    { 
      myUrl.params[x] = newParams[x]; 
    } 
  } 
  var _result = myUrl.protocol + "://" + myUrl.host + ":" + myUrl.port + myUrl.path + "?"; 
  for (var p in myUrl.params) 
  { 
    _result += (p + "=" + myUrl.params[p] + "&"); 
  } 
  if (_result.substr(_result.length - 1) == "&") 
  { 
    _result = _result.substr(0, _result.length - 1); 
  }
  if (myUrl.hash != "") 
  { 
    _result += "#" + myUrl.hash; 
  } 
  return _result; 
} 
//辅助输出 
function w(str){ 
  console.log(str); 
} 
var myURL = parseURL('https://www.51qianduan.com:8080/dir/index.html?id=255&m=hello#top'); 
w("myUrl.file = " + myURL.file)
w("myUrl.hash = " + myURL.hash)
w("myUrl.host = " + myURL.host)
w("myUrl.query = " + myURL.query)
w("myUrl.params = " + myURL.params)
w("myUrl.path = " + myURL.path)
w("myUrl.segments = " + myURL.segments)
w("myUrl.port = " + myURL.port)
w("myUrl.protocol = " + myURL.protocol)
w("myUrl.source = " + myURL.source)
var _newUrl = replaceUrlParams(myURL, { id: 101, m: "World", page: 1,"page":2 }); 
w("修改后的url:") 
w(_newUrl);
</script>

代码描述:javascript将url指定参数替换。javascript将url中指定参数替换代码实例



152 202



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到