Javascript 如何在正则表达式中使用变量?
我正在循环遍历一组单词,并希望使用Ben Alman的替换文本库来查找匹配项并使它们变为红色。这就是我现在所拥有的,但我对正则表达式知之甚少,我想获得一些关于如何从单词数组创建正则表达式的帮助Javascript 如何在正则表达式中使用变量?,javascript,jquery,regex,Javascript,Jquery,Regex,我正在循环遍历一组单词,并希望使用Ben Alman的替换文本库来查找匹配项并使它们变为红色。这就是我现在所拥有的,但我对正则表达式知之甚少,我想获得一些关于如何从单词数组创建正则表达式的帮助 var words = ['word1', 'word2','word3','word4','word5']; function colorize( str ) { return '<span class="red">' + str + '<\/span>';
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 );
});
你甚至不需要这个循环。你可以做:
var words = [...];
function colorize( str ) { ... }
var re = new RegExp("\\b(" + words.join("|") + ")\\b","gi");
$('#editor').replaceText(re,colorize );
请注意第二个参数中的i,这会导致您在文档注释中提到的不区分大小写,我相信您需要做的就是:
$("#editor").replaceText(/oldText/gi, "newText");
这种联系似乎被打破了。您确定此库仍在使用中吗?还有,为什么这里绝对需要一个regexp?你不能直接使用本机替换功能吗?只是更新了链接。我不想使用regexp,但我不知道如何处理小写和大写实例。这不起作用…你是对的,我的regexp构造函数格式错误,忘记了双转义\b。尝试一下编辑过的代码
$("#editor").replaceText(/oldText/gi, "newText");