@ 記号の後に続くユーザー名を入力するオートコンプリート ユーザー タグ システムがあります。ただし、一致する部分文字列を持つ2人のユーザーがいるというこの問題があります。例えば:
Tagging @billy and @b
ユーザーが (たとえば) @brendan という名前のユーザーで @b タグを入力すると、@billy タグが置き換えられます。前に戻って最後のタグだけを置き換えるにはどうすればよいですか?
編集:これは私の現在の解決策ですが、ぎこちなく感じます。正規表現だけでこれを行う方法はありますか?:
function tagUser (chosenUsername) {
var userRegex = new RegExp('(^|\\s)@([' + lastUserTag() + ']*)$', 'gi');
var caption = $("#example").val();
var match = caption.match(userRegex);
var lastMatch = match[match.length - 1];
$("#example").val(caption.replace(lastMatch, " @" + chosenUsername));
}