Javascript:Javascript中RegExp的/ e修饰符

时间:2014-10-14 16:31:38

标签: javascript regex perl url arithmetic-expressions

JavaScript中是否有Perls /e modifier之类的东西可以将简单算术(例如乘法和加法)整合到使用RegExp object评估的正则表达式中?

我想传输一个用于生成URL的模式,其中可能包括字符串的连接,乘法和除法以及替换整数变量,这些变量比传输和评估Javascript代码更安全。

1 个答案:

答案 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()的完整文档将显示可以传递给回调函数的额外参数,包括必要时捕获的组。