Javascriptreplace参考匹配组?

我有一个string,比如hello _there_ 。 我想用<div></div>分别replace两个下划线,使用javascript 。 输出将(因此)看起来像hello <div>there</div> 。 该string可能包含多对下划线。

我正在寻找的是在每场比赛中运行一个函数的方式,ruby是这么做的:

 "hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" } 

或者能够引用一个匹配的组,同样可以在ruby中完成:

 "hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>") 

任何想法或build议?

 "hello _there_".replace(/_(.*?)_/, function(a, b){ return '<div>' + b + '</div>'; }) 

哦,或者你也可以:

 "hello _there_".replace(/_(.*?)_/, "<div>$1</div>") 

你可以使用replace而不是gsub

 "hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")