我有一个输入字符串
var x= "(toInteger(r.Time) > 1501570800000) AND (toInteger(r.Time) < 1517385600000 )"
使用正则表达式,我能够找到数字(长度超过4):
var regex = /(\d{4,})/
regex.exec(x)
如何根据输入(最小,最大)更改这两个数值
function (min,max){
x=x.replace(regex,"$1","$2");
}
这样,如果min = 1501570800022且max = 1517385600023,则预期输出为:
"(toInteger(r.Time) > 1501570800022) AND (toInteger(r.Time) < 1517385600023 )"
答案 0 :(得分:0)
您可以使用String.prototype.replace
使用回调函数,它将在每次迭代时替换匹配组,因此我们需要在第一次迭代时返回min,在第二次迭代时返回max
。
var x= "(toInteger(r.Time) > 1501570800000) AND (toInteger(r.Time) < 1517385600000 )";
var regex = /(\d{4,})/g;
function replace(min, max) {
var iteration = 0;
return x.replace(regex, () => {
return arguments[iteration++]; // arguments is build in and contains all arguments passed to current function
});
}
console.log(replace(123, 456));