要把一段文字里面符合某个正则的都按一定规则替换成另一段与原文相关的文字,本来是个简单的需求,我刚才居然把全部文字都match出来成为数组,然后再for循环,做完后懵然想起何必这样,replace本来就支持对每一个匹配的组做处理啊,
用string.replace(regex,function(element,index){})方法即可,
var t="33aabb44aabb55aabbcc"; t=t.replace(/\d{2}/g,function(m,i){return "<b>"+m+"</b>";}); //结果:<b>33</b>aabb<b>44</b>aabb<b>55</b>aabbcc
就这么简单,假如js支持lambda表达式该有多爽