| 
		
			Сообщение от e1f
			
		
	 | 
	| 
		\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:
	 | 
	
У меня так:
RegExp.escape = function(str) {
	return (str + '').replace(/([?!^$.(){}:|=[\]+\-\/\\*])/g, '\\$1');
};
Разница такая:
у вас нет символов "-" и "/"
у меня нет "<" и ">"
Необходимость в символах "-" и "/" могу доказать на конкретных примерах, где их отсутствие приведет к неправильной работе создаваемой регулярки. Или можете просто поверить на слово и добавить их себе.
Можете обосновать символы "<" и ">" ?