私は強調表示機能を実装しようとしていますが、これが私がこれまでに持っているものです
function highlight(value, term){
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" +
term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/i, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "i"), "<strong>$1</strong>")
}
ほとんどの場合は機能しますが、用語に「)」が含まれているとコードが壊れ、次のエラーが発生します: SyntaxError: unmatched ) in regular expression. ')' は以下によってエスケープされていないようです:
term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/i, "\\$1")
しかし、私はそのコードを見て、エラーがどこにあるかを見つけることができないようです. それを指摘するのを手伝ってもらえますか?? または、これを達成するためのより簡単な方法はありますか?