求教大虾帮我解释下这串正则代码

RegExp.quote = function (string) {
return string.replace(/[-\^$*+?.()|[]{}]/g, '\$&');
};

1、【 -^$*+?.()|[]{} 】,在【】是要匹配的特殊字符的集合;
2、对于String对象的replace方法,表达式不加入g,则只替换第一个匹配,如果加入g,则替换所有匹配;
3、\$&;反斜杠应该是转义用的,
4、结合起来应该是把那里面的特殊字符转换成$&;【仅供参考,可以尝试下】