我指的是JavaScript 中不区分大小写字符串替换的代码?:
RegExp.escape = function(str)
{
var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
return str.replace(specials, "\\$&");
}
Run Code Online (Sandbox Code Playgroud)
什么\\$&意思?
我认为\\逃避这个\角色。然后$&,我认为应该$1匹配第一场比赛?tho$1不能正常工作
$&表示与正则表达式匹配的整个(子)字符串,而不考虑捕获组。您得到的替换结果是字符串中的每个匹配项都被文字反斜杠(由 表示\\)转义。由于这里使用的正则表达式只包含一个字符类,“每个匹配”是指在匹配的字符类中列出的每个元字符。
例如,正则表达式字符串[abc]将被替换为\[abc\]:
[匹配,因为它出现在字符类中。代表$&, 替换为\[
a,b并且c不是字符类中的元字符,因此它们被忽略
]匹配,因为它出现在字符类中。代表$&, 替换为\]