寻找一个内置的JavaScript Regex替换

时间:2011-12-05 12:58:28

标签: javascript regex replace

我正在一个“命令”中搜索JavaScript Regex替换。

它应该在span class =“stars”中使用HTML charcode ★(★)替换四个括号内的星号(每侧两个)。至少有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>

3 个答案:

答案 0 :(得分:5)

不是真的一行,但是这可行

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;

答案 1 :(得分:0)

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;
});

答案 2 :(得分:0)

一行:

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