Я использую jQuery Tokeninput плагин автозаполнения для списка языков программирования, и я обнаружил, что он не обрабатывает символ "+" в "C ++": он возвращает ошибку JavaScript и ничегопоявляется в списке автозаполнения.
При вводе "C" ir возвращает ошибку:
Uncaught SyntaxError: Недопустимое регулярное выражение: / (?! [^ &;] +;)(?! <[^ <>] ) (C ++) (?! [^ <>] >) (?! [^ &;] +;) /: Ничего повторять
Кажется, проблема в небольшом методе с оператором RegExp :
function find_value_and_highlight_term(template, value, term) {
return template.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + value + ")(?![^<>]*>)(?![^&;]+;)", "g"), highlight_term(value, term));
}
Переменные:
template = "<li>C++</li>";
value = "C++";
term = "C";
Как это исправить?