Javascript:Javascript中RegExp的/ e修饰符

Seb*_*rth 2 javascript regex url perl arithmetic-expressions

在JavaScript中是否有类似Perls/e修饰符的东西,可以将简单的算法(如乘法和加法)集成到使用RegExp对象计算的正则表达式中?

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

Sam*_*Sam 7

你想要的是通过传递一个回调函数来实现的.replace().


例如,在Perl中:

my $result = '1 foo 2 bar 3' =~ s/\d+/ $& * 2 /erg;
Run Code Online (Sandbox Code Playgroud)

并在Javascript中:

var result = '1 foo 2 bar 3'.replace(/\d+/g, function(match) {
    return match * 2;
});
Run Code Online (Sandbox Code Playgroud)

两者result都相等:

2 foo 4 bar 6
Run Code Online (Sandbox Code Playgroud)

阅读完整的文档.replace()将显示可以传递给回调函数的额外参数,包括必要时捕获的组.

  • @Ted Barth,这是一个解决方案,它确实回答了这个问题.这与`/ e`完全相同.键入Perl只需要更短的时间. (6认同)