作者:西北孤狼2502911947 | 来源:互联网 | 2023-10-11 16:51
我在一组文本中突出显示搜索字符串的实例.我想在替换查询的不区分大小写的匹配时保留原始文本的大小写.这是我开始的:text.replace(newRegExp('(
我在一组文本中突出显示搜索字符串的实例.我想在替换查询的不区分大小写的匹配时保留原始文本的大小写.这是我开始的:
text.replace(new RegExp('(' + query + ')', 'ig'), '$1');
在这种情况下,我需要转义查询以防止括号打破子匹配,所以我想我会尝试:
text.replace(new RegExp(query, 'ig'), '$0');
但似乎没有使用$0 – 所有匹配的字符串都被$0替换.然而,我找到了另一种选择:
text.replace(new RegExp(query, 'ig'), function(match) { return '' + match + ''; });
不过,我不是很喜欢它的外观.你会怎么建议做这种类型的字符串替换?
解决方法:
使用$&而不是$0来引用整场比赛.我责备Perl.