我要突出显示一组文本中的搜索字符串实例。我想保留原始文本的大小写,同时替换查询的不区分大小写的匹配项。这是我的开始:
text.replace(new RegExp('(' + query + ')', 'ig'), '<em>$1</em>');
在这种情况下,我需要转义
query
以防止括号破坏子匹配,因此我想尝试一下:text.replace(new RegExp(query, 'ig'), '<em>$0</em>');
但是似乎没有使用
$0
-所有匹配的字符串都替换为$ 0。但是,我确实找到了替代方法:text.replace(new RegExp(query, 'ig'), function(match) { return '<em>' + match + '</em>'; });
不过,我不是很喜欢这种外观。您如何建议进行这种类型的字符串替换?
最佳答案
使用$&
而不是$0
来引用整个匹配项。我责怪Perl。
关于javascript - 使用$ 0引用Javascript的String.replace中的整个匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4002334/