この解答例は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()
を使って正規表現を動的に生成しています。