プログラミング言語のリストにjQuery Tokeninputオートコンプリートプラグインを使用していますが、「C++」で「+」文字を処理しないことがわかりました.JavaScriptエラーが返され、オートコンプリートリストには何も表示されません。jQueryプラグインでこのようなRegExpバグを修正するにはどうすればよいですか?
私は "C" を入力すると、IRがエラーを返します:
Uncaught SyntaxError: Invalid regular expression: /(?![^&;]+;)(?!<[^<>])(C++)(?![^<>]>)(?![^&;]+;)/: Nothing to repeat
問題がa small method with RegExp statementであるように思わ:
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";
私はどのように修正すればよいですそれ?
は、任意の文字列を正規表現セーフになるだろう任意の方法は、ありますか?例:( "+ regexp_safe(value)+") – krn
それを見つけました:http://simonwillison.net/2006/Jan/20/escape/#p-6 - 今はうまくいきます。ありがとうございました。 – krn
リンクが死んでいると、ここに投稿するのが良いでしょう... – Apolo