Регулярное выражение выбирает «специальные» символы и добавляет обратную косую черту.Я предполагаю, что ему не нравится голое "[" в классе персонажей, но это всего лишь предположение.Вы можете попробовать:
var cleanString = deaccentedString.replace(/([|()\[{.+*?^$\\])/g,"\\$1");
Другой вариант - просто не беспокоиться о том, что говорит jshint;В конце концов, это всего лишь консультативный инструмент, и если код действительно работает должным образом во всех браузерах, ну, совет явно плохой: -)