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

Discord.js如何从消息内容中提取数字以实现resetHWID指令功能

问题原因

你的代码存在2个核心错误:

  • message.content.startsWith() 返回的是布尔值(true/false),直接用字符串与布尔值做算术运算会得到非法数值NaN,不可能得到你要的用户ID参数
  • 没有对消息内容做分割处理,无法提取出命令后面跟着的参数内容
修复代码
Client.on ("message", (message) => {
    if (message.author.bot) return;
    const commandPrefix = Config.prefix + 'resetHWID';
    if (message.content.startsWith(commandPrefix)){
        // 切除命令前缀,按空格分割提取参数
        const args = message.content.slice(commandPrefix.length).trim().split(/\s+/);
        const userId = args[0];
        // 可选:参数非空校验,避免用户未传参的异常
        if (!userId) {
            return message.channel.send('请输入要重置的用户ID');
        }
        const Embed = new Discord.MessageEmbed()
            .setColor('#6f0bd4')
            .setTitle('Success!')
            .setDescription(`Successfully reset HWID for user ${userId}`)
        message.channel.send(Embed);
    }
});
修复说明
  • 先提取完整命令前缀,用slice方法切掉消息内容里的命令前缀部分,再用trim去除前后多余空格
  • 按空格分割剩余内容拿到参数数组,取第一个元素就是目标用户ID
  • 新增参数校验逻辑,避免用户未传参数时返回异常内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 11:27:02