You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Discord投票命令参数中的逗号替换为空格?

解决Discord机器人投票命令中参数显示带逗号的问题

你的问题出在对args数组的处理上:args是拆分后的命令参数数组,直接将数组插入模板字符串时,JavaScript会默认用逗号分隔数组元素,这就是为什么你看到“what,is,up”的原因。

修复方案

只需要使用数组的join(' ')方法,把数组元素用空格拼接成完整的字符串即可。同时还可以优化一下参数校验的逻辑(原代码中if (!args)无法正确判断空参数,因为空数组在JavaScript里是真值),修改后的完整代码如下:

exports.run = async (bot, message, args) => {
    // 优化参数校验:检查args数组长度是否为0
    if (!args.length) return message.reply("You must have something to vote for!");
    
    // 使用join(' ')将args数组拼接成空格分隔的字符串
    const pollTopicText = args.join(' ');
    
    message.channel.send(`:ballot_box: ${message.author.username} started a poll! React to my next message to vote on it. :ballot_box: `);
    const pollTopic = await message.channel.send(pollTopicText);
    pollTopic.react(`✅`);
    pollTopic.react(`⛔`);
};

关键修改点

  • 把${args}替换为args.join(' '):join(' ')会把数组里的每个元素用空格连接,生成你想要的连续文本(比如把['What', 'is', 'up']变成"What is up")。
  • 将if (!args)改为if (!args.length):因为空数组[]在JavaScript中是“真值”,直接判断!args会返回false,无法正确拦截无参数的情况,而args.length为空数组时是0,!0为true,能正确触发提示。

这样修改后,你输入投票问题“What is up”时,机器人就会正常显示完整的文本了。

内容的提问来源于stack exchange,提问作者JerryTerry Gaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:08:36