用于将1添加到网址

时间:2016-05-14 04:24:52

标签: javascript

我对JavaScript很陌生,但我想创建一个脚本,只要点击一个按钮,就会在URL中为数字添加1。 (我还希望我的浏览器每次执行该功能时都会打开每个新创建的URL)。

我认为这必须使用str.replace并且我编写了某种功能,但它还无法工作,我不确定每次运行该功能时我的浏览器如何打开新变量。 / p>

我所做的功能(在HTML文档中)如下所示,你知道如何编辑它来做我想做的事情吗?如果需要的话,我可以提供更多信息。谢谢!

function {
  var str = http://www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001
  var res = str.replace("(seriesID=)", "(seriesID=) + 1)");
}

4 个答案:

答案 0 :(得分:1)

function setSeriesID(url, id) {
  // var pattern = /(seriesID\=\d)/g;
  var pattern = /(seriesID\=\d+)/g; // edited 
  
  return url.replace(pattern, 'seriesID=' + id);
}

var new_url_1 = setSeriesID('http: //www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001', 1);

alert("new_url_1 : " + new_url_1);

// otherwise if you want to change multiple url params then use this :

function set_id(parameter, url, id) {
  // var pattern = new RegExp("(" + parameter + "\\=\\d)", 'g');
  var pattern = new RegExp("(" + parameter + "\\=\\d+)", 'g'); // edited 
  return url.replace(pattern, parameter + '=' + id);
}

var new_url_2 = set_id('seriesID', 'http: //www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001', 1);

alert("new_url_2 : " + new_url_2);

答案 1 :(得分:0)

str似乎不是一个字符串。把''放在一边。该功能缺失()。

    function name() {
      var str = 'http://www.example.com/static/page/test/test.jhtmlchannelID=11&seriesID=0&episodeNumber=001';
      var res = str.replace("(seriesID=)", "(seriesID=) + 1)");
      console.log(res);
}

name();

使用替换不起作用。

答案 2 :(得分:0)

您的功能有三个问题。

首先,str实际上不是一个字符串,你需要它周围的引号,因为它是一个有效的字符串。

  var str = "http://www.example.com/static/page/test/test.jhtml?"channelID=11&seriesID=0&episodeNumber=001

其次,replace()将用其他东西替换子字符串。在这种情况下,它正在搜索不存在的文字字符串"(seriesID=)"。摆脱括号:"seriesID="

最后,当您向字符串添加数字时,javascript会将数字转换为字符串并返回字符串。因此,单击该按钮后,结果将始终为"seriesID=1"。要解决此问题,请使用Number()解析数字并将其转换为数字,并将其存储在另外var number中,只要您点击该按钮,就会添加1。最后,您将调用replace:

 str.replace('seriesID=', 'seriesID=' + number);

答案 3 :(得分:0)

可能看起来有点复杂,但这将完全符合您的需求。

var str = 'http://www.example.com/static/page/test/test.jhtml?channelID=11&seriesID=0&episodeNumber=001';

function myFun() {  
  
  var n = str.indexOf("seriesID");
  var m = str.indexOf("&",n);
  var y = str.substring(n, m);
  var z = y.split('=');
  
  str = str.replace(y, z[0] + '=' + (parseInt(z[1]) + 1));
  
  var win = window.open(str, '_blank');

  console.log(str);
  
  if(win){
    //Browser has allowed it to be opened
    win.focus();
  } else{
    //Broswer has blocked it
    alert('Please allow popups for this site');
  }
}
<button onclick='myFun()'>Click me</button>