Это более короткая версия.
RegExp.escape = function(s) { return s.replace(/[$-\/?[-^{|}]/g, '\\$&'); }
Это включает неметаные символы из %, &, ' и ,, но спецификация JavaScript RegExp позволяет это.
%
&
'
,