Javascript:文本替换数组中的多个字符串?

时间:2013-03-10 18:18:56

标签: javascript jquery replace

我有一个包含Twitter主题标签的数组。我想为这些主题标签过滤字符串tw.text并将这些字词包装在span

var hashtags = new Array("home","car", "tree");

tw.text.replace('#home', '<span class="hash">#home</span>')

我该怎么做?

提前谢谢。

2 个答案:

答案 0 :(得分:4)

hashtags.forEach(function (elem) {
    tw.text = tw.text.replace('#' + elem, '<span class="hash">#' + elem + "</span>");
});

这不会考虑包含可能导致重复替换的其他标记的标记。

答案 1 :(得分:3)

我会建立一个正则表达式来做这样的替换......

var hashtags = new Array("home","car", "tree");

var rex = new RegExp("#("+hashtags.join("|")+")",'g')

tw.text.replace(rex, '<span class="$1">#$1</span>')

正则表达式最终为#(thing|another|etc...)所以所有替换都是一次性完成的。