我会替换文本中的所有数字,例如我会为所有数字添加一些值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);
但显然不起作用。
答案 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);