是否有一种方法可以动态地替换一个函数,类似于.replace
在JavaScript中的工作方式?一个类似的用例是,我有一个带有数字的字符串,我想通过一个函数传递这些数字:
"1 2 3" => "2 4 6" (x2)
当前的preg_replace
函数似乎不支持参数函数
作为参考,在JavaScript中可以这样实现:
var str = "1 2 3";
str.replace(/'d+/g, function(num){
return +num * 2;
});
你应该使用preg_replace_callback()
有回调正则表达式匹配。您可以在回调函数中乘以匹配的数字。
$newStr = preg_replace_callback("/'d+/", function($matches){
return $matches[0] * 2;
}, $str);
检查demo的结果