【发布时间】:2022-01-19 05:27:27
【问题描述】:
我有这个 Discord 机器人,它包含一个随机命令 - /random(使用 new SlashCommandBuilder 构建) - 并包含两个必需的字符串选项 - min 和 max 值。
这段代码...
run: async (bot, interaction, args) => {
const min = interaction.options.getString('min').replace(/[^\d.-]/g, '')
const max = interaction.options.getString('max').replace(/[^\d.-]/g, '')
parseFloat(min, parseFloat(max))
random = Math.floor(Math.random() * (max - min) + min)
console.log(min, max)
interaction.followUp({ content: `${random}` })
}
...从用户交互中提取字符串并将它们解析为浮点数。预期结果由min 值和max 值之间的随机数组成。
但是,随机发生器不使用 min 或 max 值,而是打印一个随机数,无论用户输入什么。
我预测这是一种非常低效的随机化命令方法。我恳请您提供帮助,如果有任何帮助,我们将不胜感激!
注意:命令执行不会出错。
【问题讨论】:
-
问题是替换函数中的正则表达式,我已经对其进行了测试here,当我删除“^”时它似乎工作正常(显然 ^ 使得正则表达式选择除了元素之外的所有内容为您提供(此处为数字)与您想要的完全相反)
-
我记录了
min和max值,它们似乎都可以很好地提取数字。我不明白这个问题。
标签: javascript node.js discord discord.js