私のプロジェクトでは、で表される場合は常にテキスト(ユーザー名のみ)を強調表示しようとしています@
。私は次の関数を使用しています:
function replaceMessage(data, username) {
return data.replace("@" + username, "<strong>@" + username + "</strong>");
}
この上記の関数は機能していますが、「Sam」や「Samuel」などの名前の有効なユーザーが2人いる場合、関数を適用した後の結果は次のようになります:
Sam
とSam
uel (の代わりにSamuel
)。
この問題を解決するにはどうすればよいですか?
正規表現の使い方はあまり得意ではないので、IE8では動作しない以下の機能を試してみました。
function replaceMessage(data, username) {
return data.replace(/\b + "@" + username + /g, "<strong>@" + username + "</strong>");
}