在NodeJS中的文本中为所有数字添加值

时间:2018-01-11 10:02:47

标签: node.js regex

我会替换文本中的所有数字,例如我会为所有数字添加一些值V。例如,对于V=3

var inp = "Try to replace thsis [11-16] or this [5] or this [1,2]";
替换应该给我:

var output = "Try to replace thsis [14-19] or this [8] or this [4,5]";

使用RegExp我想做一些像:

var V = 12;
var re = new RegExp(/[0-9]+/g);
var s = inp.replace(re,'$1' + V);

但显然不起作用。

1 个答案:

答案 0 :(得分:1)

in.replace(re,'$1' + V)中,V值仅添加到$1字符串,字符串替换模式看起来像$112。由于您的模式不包含任何捕获组,因此替换模式将被视为文字字符串。

您可以在replace方法中使用回调来操作匹配值:

var V = 3;
var inp = "Try to replace thsis [11-16] or this [5] or this [1,2]";
var re = /[0-9]+/g;
var outp = inp.replace(re, function($0) { return parseInt($0, 10) + V; });
console.log(outp);