Javascript 用于突出显示转义字符的正则表达式

Javascript 用于突出显示转义字符的正则表达式,javascript,regex,Javascript,Regex,我正在用JavaScript构建一个自动完成功能,在搜索时需要突出显示单词: 这很好,但是转义字符有问题。 尝试突出显示带有转义字符的文本(例如regex&>

我正在用JavaScript构建一个自动完成功能,在搜索时需要突出显示单词:

这很好,但是转义字符有问题。 尝试突出显示带有转义字符的文本(例如
regex&>
)时,会发生以下情况:

这是因为我正在做以下工作:

element.innerHTML.replace(/a/g, highlight)

function highlight(str) {
  return '<span class="foo"' + '>' + str + '</span>';
}
element.innerHTML.replace(/a/g,高亮显示)
功能突出显示(str){
返回“+str+”;
}
innerHTML
包含单词
&,所以它是有意义的

总之,我需要一种方法来解决这个问题,所以我想要一个函数:

  • 接收
    a
    regex
    示例
    并返回
    regex br示例
  • 接收
    r
    regex
    示例
    并返回
    regex br示例
  • receives
    仅返回包含预期替换内容的新字符串。原始字符串保持不变

    var str='replace me';
    var str2=str.replace(/e/g,'e');
    //仅供展示
    document.write(“”+JSON.stringify({
    str:str,
    str2:str2
    
    },空,2)+''
    如果您不希望返回实体,请使用
    textContent
    获取内容,并使用
    innerHTML
    将其设置为包含的范围?
    textContent
    已转义字符(即:
    &;
    ),例如,它只是排除了类似
    span
    的html,这看起来像是另一个例子,你不能用正则表达式解析html。。。(除非您将单个字符
    /a/
    作为一个完整的正则表达式进行计数,
    itemElem
    是否填充了转义(未高亮显示)文本,然后高亮显示将尝试包含
    span
    以高亮显示文本?或者函数将被赋予原始的未转义字符串,然后将突出显示的转义文本设置为
    itemElem
    ?感谢您的回答,但我看到了一个未涵盖的额外情况:我将问题更新为clarify@lante在这种情况下,您希望的输出是什么?“
    ”是否在输入中转义,是否需要在输出元素中转义?例如,条目可能包含html块,也可能不包含html块(我不能禁止用户将html块作为条目)搜索
    br
    &
    @lante它需要是全局匹配还是只突出显示第一个匹配有效?全局匹配是自动完成的