Javascript 如何在正则表达式中使用变量?

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>';

我正在循环遍历一组单词,并希望使用Ben Alman的替换文本库来查找匹配项并使它们变为红色。这就是我现在所拥有的,但我对正则表达式知之甚少,我想获得一些关于如何从单词数组创建正则表达式的帮助

  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");