我有一个自动完成的用户标记系统,可以填写 @ 符号之后的用户名。但是,我有这个问题,我有两个具有匹配子字符串的用户。例如:
Tagging @billy and @b
当用户使用名为(例如)@brendan 的用户填写 @b 标记时,它将替换 @billy 标记。如何倒退并仅替换最后一个标签?
编辑:这是我目前的解决方案,但感觉很笨拙。有没有办法只用 RegEx 做到这一点?:
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));
}