【发布时间】:2011-04-07 00:00:00
【问题描述】:
我试图通过在匹配的子字符串周围插入<b> 标记来突出显示字符串中的匹配项。例如,如果查询是“猫”,那么:
"I have a cat."
应该变成:
"I have a <b>cat</b>."
同样,如果查询是“堆栈溢出”,那么:
"Stack Overflow is great."
应该变成:
"<b>Stack Overflow</b> is great."
也就是说,我要保留原字符串的大小写,但匹配时不区分大小写。
到目前为止,我正在尝试的一件事是:
var regex = new RegExp('(' + query + ')', 'i');
return strResult.replace(regex, '<b>$1</b>');
但是,如果查询中有任何括号,这会导致运行时异常,并且我认为尝试转义所有可能的正则表达式字符太麻烦了。
【问题讨论】:
标签: javascript html regex