JavaScript中是否有Perls /e modifier之类的东西可以将简单算术(例如乘法和加法)整合到使用RegExp object评估的正则表达式中?
我想传输一个用于生成URL的模式,其中可能包括字符串的连接,乘法和除法以及替换整数变量,这些变量比传输和评估Javascript代码更安全。
答案 0 :(得分:7)
通过将回调函数传递给.replace()
来实现您的目标。
例如,在Perl中:
my $result = '1 foo 2 bar 3' =~ s/\d+/ $& * 2 /erg;
在Javascript中:
var result = '1 foo 2 bar 3'.replace(/\d+/g, function(match) {
return match * 2;
});
两个result
都等于:
2 foo 4 bar 6
阅读.replace()
的完整文档将显示可以传递给回调函数的额外参数,包括必要时捕获的组。