我有以下字符串:0-3-terms
我需要在每次单击按钮时将3增加20,同时起始值可能不总是3,但我将在此示例中使用它。
我设法使用子字符串来做这个但是它太乱了,我宁愿看看是否可以使用正则表达式,但我对正则表达式并不好。到目前为止,我到了这里,我想我会用两个连字符来找到我需要增加的数字。
var str = '0-3-terms';
var patt = /0-[0-9]+-/;
var match = str.match(patt)[0];
//output ["0-3-"]
如何将数字3增加20并将其重新插入到str中,所以我得到:
0-23-terms, 0-43-terms, 0-63-terms
等。
答案 0 :(得分:5)
您正在进行替换。因此,请使用.replace
。
var str = '0-3-terms';
var patt = /-(\d+)-/;
var result = str.replace(patt,function(_,n) {return "-"+(+n+20)+"-";});
答案 1 :(得分:1)
如果您愿意,另一个选择是使用.split
而不是正则表达式。这看起来像这样:
var str = '0-3-terms';
var split = str.split('-');
split[1] = +split[1] + 20;
var result = split.join('-');
alert(result);
答案 2 :(得分:0)
我不明白你为什么使用正则表达式。只需存储值并在调用按钮时创建字符串。
//first value
var value = 3;
var str = '0-3-terms';
//after clicking the button
value = value+20;
str = "0-" + value + "-terms"