Mik*_*sen 5 html javascript regex
我试图通过<b>在匹配的子字符串周围插入标签来突出显示字符串中的匹配项.例如,如果查询是"cat",则:
"I have a cat."
Run Code Online (Sandbox Code Playgroud)
应成为:
"I have a <b>cat</b>."
Run Code Online (Sandbox Code Playgroud)
同样,如果查询是"堆栈溢出",则:
"Stack Overflow is great."
Run Code Online (Sandbox Code Playgroud)
应成为:
"<b>Stack Overflow</b> is great."
Run Code Online (Sandbox Code Playgroud)
换句话说,我必须保留原始字符串的大小写,但在匹配时不区分大小写.
到目前为止我尝试的一件事是:
var regex = new RegExp('(' + query + ')', 'i');
return strResult.replace(regex, '<b>$1</b>');
Run Code Online (Sandbox Code Playgroud)
但是,如果查询中有任何括号,这会导致运行时异常,并且我认为尝试转义所有可能的正则表达式字符会太麻烦.
有关如何转义特殊正则表达式字符的信息,请参阅“转义字符串中的正则表达式字符 - JavaScript ”,例如()
编辑:还要查看这个较旧的 SO 问题,它提出了一个非常相似 - 几乎相同 - 的问题。