gpt4 book ai didi

javascript - 替换正则表达式中的最后一场比赛

转载 作者:行者123 更新时间:2023-11-30 13:06:00 25 4
gpt4 key购买 nike

我有一个自动完成的用户标记系统,可以在 @ 符号后填写用户名。但是我遇到了这个问题,我有两个用户具有匹配的子字符串。例如:

标记@billy 和@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));
}

最佳答案

不确定我是否完全理解您的问题。但是只是为了让您知道您可以使用否定前瞻来仅替换最后匹配的文本,如下所示:

var str='@billy and @b';
str = str.replace(/@b\b(?!.*?@b\b)/, 'brendan');

关于javascript - 替换正则表达式中的最后一场比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com