Попытка экранировать специальные символы. Я набираю $ или ^ или | работает нормально. Почему мой приведенный ниже код не экранируется () {}? * + и \, когда я набираю их, я получаю ошибку недопустимого выражения.
escape = function(value) {
return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
}
что-то не так с приведенным выше выражением ???
MDN предлагает это
function escapeRegExp(string) {
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
даже в этом случае я столкнулся с той же проблемой. нет ошибок для {} $ ^ | но я получаю ошибку для () *? \ +