我正在尝试将字符串中的事件替换为其他内容。假设我有以下句子:
Hi @john.doe, i see @john has tagged you
字符串
我在这句话里有两个用户名:@john
和@john.doe
中的至少一个。我想把它变成这样一句话:
Hi @john.doe(1), i see @john(2) has tagged you
型
我是这样做的:
Text = text.replace(username, ‘${username}(${userId})’);
型
问题是,当我遍历字符串中的所有用户名并对每个用户名进行替换时,因为@john
是一个用户名,但也是另一个用户名的一部分,所以它不起作用。
如何在js中替换字符串中的单词?
2条答案
按热度按时间lskq00tm1#
您可以迭代用户名,如果它们以所需的格式存在,则替换它们:
字符串
zf2sa74q2#
你能试着按长度降序排列你的用户名,然后尝试替换/应用给定字符串中的用户名吗?这将解决你的问题。只要确保在替换值时,如果ID已经附加到用户名,则跳过这些。试试这个,让我知道这是否对你有效。