Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 递增字符串中的数字_Javascript_Regex - Fatal编程技术网

Javascript 递增字符串中的数字

Javascript 递增字符串中的数字,javascript,regex,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

我有以下字符串:
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术语、0-43术语、0-63术语
等等。

您正在进行替换。因此,请使用
。替换

var str = '0-3-terms';
var patt = /-(\d+)-/;
var result = str.replace(patt,function(_,n) {return "-"+(+n+20)+"-";});

你在做替换。因此,请使用
。替换

var str = '0-3-terms';
var patt = /-(\d+)-/;
var result = str.replace(patt,function(_,n) {return "-"+(+n+20)+"-";});

另一种选择是使用
.split
而不是regex,如果您愿意的话。看起来是这样的:

var str='0-3-terms';
var split=str.split('-');
分割[1]=+分割[1]+20;
var result=split.join('-');

警报(结果)
如果您愿意,另一个选项是使用
.split
而不是regex。看起来是这样的:

var str='0-3-terms';
var split=str.split('-');
分割[1]=+分割[1]+20;
var result=split.join('-');

警报(结果)我不明白你为什么要使用正则表达式。调用按钮时,只需存储值并创建字符串

//first value
var value = 3;
var str = '0-3-terms';

//after clicking the button
value = value+20;
str = "0-" + value + "-terms"

我不明白你为什么用正则表达式。调用按钮时,只需存储值并创建字符串

//first value
var value = 3;
var str = '0-3-terms';

//after clicking the button
value = value+20;
str = "0-" + value + "-terms"

使用正则表达式可以在每次单击时查找任意数量的数字。您的答案不会显示下一个值是如何得到的,一旦它的增量超过3,您可以在每次单击按钮时将变量“value”更新20。下一个值是更新后的值。很抱歉,我应该提到,起始值可能不总是3,因此正则表达式将捕获所有数字。使用正则表达式可以在每次单击时查找任意数量的数字。您的答案不会显示下一个值是如何得到的,一旦它的增量超过3,您可以在每次单击按钮时将变量“value”更新20。下一个值是更新后的值。很抱歉,我应该提到起始值可能不总是3,所以正则表达式将捕获所有数字。学到了一些东西。没有意识到JS可以使用regex回调。学到了一些东西。没有意识到JS可以使用regex回调。