我对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)");
}
答案 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>