@urajo

Как совершить поиск по слову и заранее экранировать символы?

В функцию приходит строка например 'Success)'
Задача следующая, сделать новую строку которая генерируется так: Если в исходной строке больше 1 одинакового символа то в новую строку добавляется ) т.е тут 'Success)' будет ")())())("
Часть кода есть
function duplicateEncode(word){
    return word.toLowerCase().replace(/./g, (match) => {
      let re = new RegExp(match, 'g');
      return word.match(re).length > 1 ? ')' : '(';
    })
}
console.log(duplicateEncode('Success)'))

Но в нем нюанс есть, без символов он работает как надо, но если появляется например скобка в конце как в примере, то
Uncaught SyntaxError: Invalid regular expression: /)/: Unmatched ')'

Я понимаю в чем ошибка, но не понимаю что мне делать. Может кто подсказать?
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
RTFM
If escape strings are not already part of your pattern you can add them using String.replace:
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы