增加字符串中的数字

时间:2014-11-05 19:06:54

标签: javascript regex

我有以下字符串: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等。

3 个答案:

答案 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"