我正在寻找一个“命令”中的JavaScript正则表达式替换。

应该用span class =“ stars”内的HTML字符★(★)代替四个括号内的星号(每侧两个)。最小为1,最大为5个星号。

替换应用于大文本,因此应该执行多个替换。

例:

{{*}}
{{**}}
{{***}}
{{****}}
{{*****}}


应替换为:

<span class="stars">&#9733;</span>
<span class="stars">&#9733;&#9733;</span>
<span class="stars">&#9733;&#9733;&#9733;</span>
<span class="stars">&#9733;&#9733;&#9733;&#9733;</span>
<span class="stars">&#9733;&#9733;&#9733;&#9733;&#9733;</span>

最佳答案

并不是真正的一行,但这行得通

var t = document.getElementById("container").innerHTML;
t = t.replace(/{{(\*{1,5})}}/g,function(m, g) {
    return "<span class='star'>"+new Array(g.length+1).join("&#9733;")+"</span>";
});
document.getElementById("container").innerHTML = t;

07-24 17:30