我正在一个“命令”中搜索JavaScript Regex替换。
它应该在span class =“stars”中使用HTML charcode ★
(★)替换四个括号内的星号(每侧两个)。至少有1个,最多5个星号。
替换应用于大文本,因此多个替换应该起作用。
示例:
{{*}}
{{**}}
{{***}}
{{****}}
{{*****}}
应替换为:
<span class="stars">★</span>
<span class="stars">★★</span>
<span class="stars">★★★</span>
<span class="stars">★★★★</span>
<span class="stars">★★★★★</span>
答案 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("★")+"</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+= "★";
}
str+= "</span>"
return str;
});
答案 2 :(得分:0)
一行:
s.replace('{{','<span class=stars>').replace(/\*/g,'★').replace('}}','</span>');