首页 > 解决方案 > 将数字转换为 gif 表情符号

问题描述

当我使用 unicode emojis 时,尝试将数字转换为 gif emojis 没问题,但是当我写 emoji id 时,由于替换,它在 ids 中变成了 emojis。我该如何解决这个问题?

它看起来像这样

  let online = guild.members.filter(m => !m.user.bot && m.user.presence.status !== "online").size;
  setInterval(() => {
    client.channels.get("633021183994101760").setTopic(
      `Toplam Üye: ${guild.members.size}\nAktif Üye: ${online}`
        .replace("0", " <a:sifir:657890675500515338>")
        .replace("1", " <a:bir:657890703334178837>")
        .replace("2", " <a:iki:657890720652460063>")
        .replace("3", " <a:uc:657890738956140555>")
        .replace("4", " <a:dort:657890757793021953>")
        .replace("5", " <a:bes:657890775211704331>")
        .replace("6", " <a:alti:657890790915178496>")
        .replace("7", " <a:yedi:657890808183128066>")
        .replace("8", " <a:sekiz:657890823664566282>")
        .replace("9", " <a:dokuz:657890839632019466>")
    );
  }, 1000);
});```

标签: discord.js

解决方案


你应该做一个numberToEmojis()这样的函数:

    const numbers = [
        "<a:sifir:657890675500515338>",
        "<a:bir:657890703334178837>",
        "<a:iki:657890720652460063>",
        "<a:uc:657890738956140555>",
        "<a:dort:657890757793021953>",
        "<a:bes:657890775211704331>",
        "<a:alti:657890790915178496>",
        "<a:yedi:657890808183128066>",
        "<a:sekiz:657890823664566282>",
        "<a:dokuz:657890839632019466>"
    ];

    function numberToEmojis(number){
        let finalString = "";
        String(number).split("").forEach((number) => {
            finalString += " "+numbers[Number(number)];
        });
        return finalString;
    };

    let online = guild.members.filter(m => !m.user.bot && m.user.presence.status !== "online").size;
    setInterval(() => {
        client.channels.get("633021183994101760").setTopic(
        `Toplam Üye: ${numberToEmojis(guild.members.size)}\nAktif Üye: ${numberToEmojis(online)}`
        );
    }, 1000);
});

推荐阅读