【问题标题】:Wrap each word in string with span using regular exp使用常规 exp 将字符串中的每个单词与 span 包装起来
【发布时间】:2017-07-15 10:19:00
【问题描述】:
如何使用正则表达式将文本中的每个单词替换为“span”?
var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806"
final op = "<span class="word">1:393</span><span class="word">1:838</span><span class="word">3:936</span><span class="word">1:998</span><span class="word">1:139</span>...."
【问题讨论】:
标签:
javascript
jquery
regex
【解决方案1】:
如果分隔符始终是单个空格,则您实际上不需要正则表达式,只需在空格上拆分 (或 \b,如果您想要正则表达式),添加一些标记,并再次加入。
var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
var op = text.split(' ').map(function(w) {
return '<span class="word">' + w + '------</span>';
}).join('');
document.body.innerHTML = op;
.word {color : red}
【解决方案2】:
var op = '<span class="word">' + text.split(' ').join('</span><span class="word">') + '</span>'
【解决方案3】:
使用String#replace。
const text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
const result = text.replace(/\d:\d+/g, '<span class="word">$&</span>');
console.log(result);
【解决方案4】:
这就是你需要的 (https://jsfiddle.net/6r005vgf/3/):
var text = "1:393 1:838 3:936 1:998 1:1398 1:1652 1:1718 1:1806";
//var final = "<span class='word'>1:393</span><span class='word'>1:838</span><span class='word'>3:936</span><span class='word'>1:998</span><span class='word'>1:139</span>....";
var final_test = "<span class='word'>" + text.replace(/\s+/g, "</span><span class='word'>") + "</span>";
//alert(final);
alert(final_test);