寻找一行JavaScript Regex替换

Looking for one lined JavaScript Regex replace

本文关键字:JavaScript Regex 替换 一行 寻找      更新时间:2023-09-26

我正在寻找一个JavaScript Regex替换在一个"命令"。

它应该用一个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;
str.replace(/'{'{('*{1,5})'}'}/, function (s1, s2) {
    var i, str = "<span class='stars'>";
    for (i = 0; i < s2.length; i += 1) {
        str+= "&#9733;";
    }
    str+= "</span>"
    return str;
});

一行:

s.replace('{{','<span class=stars>').replace(/'*/g,'&#9733;').replace('}}','</span>');