所以,我有一个字符串,它是一系列从 1 到 6 的数字。根据有问题的数字,我想用不同的代码替换每个。这是针对 Discord 机器人的,因此六个数字中的每一个都应替换为不同的 Discord 表情符号代码。我试过使用 string.replace 链,但是,由于这些表情符号代码包含数字,替换项开始相互堆叠并替换替换项(我知道这太麻烦了!)这完全破坏了代码。
这是一个示例链:
1 2 1 4 6
这是一个关于如何替换数字的索引:
1 = <:attr1:710526292784578581>
2 = <:attr2:710526292721664142>
3 = <:attr3:710526292642103398>
etc.
因此,理想情况下,它应该变成像这样的字符串,而不是最终困惑和混合的字符串,因为替换链正在吞噬自己。
<:attr1:710526292784578581> <:attr2:710526292721664142> <:attr3:710526292642103398>
我怎样才能基本上同时进行这些替换,以便它们仅影响字符串中的项目,而不开始相互影响?答案将不胜感激!
编辑:这是我自己对替换链的尝试,它返回了一个错误的困惑。
var attribEmoji = attribResult.join(" ").replace(/1/g, "<:attr1:710526292784578581>").replace(/2/g, "<:attr2:710526292721664142>").replace(/3/g, "<:attr3:710526292642103398>");
最佳答案
在数字链中,如果每个数字后面都有一个空格而替换数字没有,那么这是一个很容易解决的问题。创建一个图标数组并遍历它们,用适当的代码用空格替换索引。
var emojis = [];
emojis[1] = "<:attr1:710526292784578581>";
emojis[2] = "<:attr2:710526292721664142>";
emojis[3] = "<:attr3:710526292642103398>";
var chain = "1 2 3 ";
emojis.forEach(function(i,v){
chain = chain.replace(v + " ",i + " ");
});
console.log(chain);
关于javascript - 如何一次替换字符串的多个不同部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61803493/