这是js最鲜为人知的秘密之一,v 1.3首次引入。大部分情况下repalce的使用情况如下:
'10 12 13 40 50'.replace(/d+/g,'*');//用 * 替换所有的数字
这是一个简单的数字替换逻辑。但是,如果我们希望在替换发生时又更多的控制,该怎么办?
比如:我们只希望替换小于20的数值。此时仅仅依靠正则表达式就不行了,我们需要借助回调函数对每个匹配进行处理。
'10 12 13 40 50'.replace(/d+/g,function(match){
return match < 20 ? '*' : match;
})
当每个匹配完成的时候,JS应用回调函数,传递匹配内容给 match 参数。然后,根据回调函数里面的过滤规则,要么返回星号,要么返回匹配本身(无替换发生)。