我正在通过一系列单词循环,并希望使用Ben Alman的替换文本库(http://benalman.com/projects/jquery-replacetext-plugin/)来查找匹配并使它们变为红色。这就是我现在所拥有的,但我对正则表达式知之甚少,并希望在如何从单词数组中创建正则表达式方面提供一些帮助。
var words = ['word1', 'word2','word3','word4','word5'];
function colorize( str ) {
return '<span class="red">' + str + '<\/span>';
};
$.each(words, function(i, val){
var re = new RegExp("not sure what goes here","g");
$('#editor').replaceText(re,colorize );
});
试试这个并不起作用:
$.each(words, function(i, val){
var re = new RegExp("/\b" + val + "\b","gi");
$('#editor').replaceText(re,colorize );
});
答案 0 :(得分:0)
从文档中,我相信您需要做的就是:
$("#editor").replaceText(/oldText/gi, "newText");
答案 1 :(得分:-1)
你甚至不需要循环。你可以这样做:
var words = [...];
function colorize( str ) { ... }
var re = new RegExp("\\b(" + words.join("|") + ")\\b","gi");
$('#editor').replaceText(re,colorize );
(注意第二个参数中的i
,这会给出您在评论中提到的不区分大小写的情况)