この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript コーディング問題
55. HTML文字列でキーワードをハイライトする
function highlightKeywords(html, keywords) { keywords.forEach(keyword => { html = html.replace(new RegExp('('+keyword+')', 'gi'), '<em>$1</em>'); }); return html;}
正規表現の ( )
はキャプチャ(マッチングした文字列を保存)用途なので、キャプチャしたくない場合は (?: )
と書くことができます。
また、gi
の g
はグローバル検索を意味し、i
は大文字小文字を無視する検索を意味します。
replace
メソッドの第1引数に、検索パターンを正規表現オブジェクトで指定できるので、ここでは new RegExp()
を使って正規表現を動的に生成しています。