Discord.js 从消息内容中获取数字

时间:2021-07-15 12:30:52

标签: javascript node.js discord.js

今天我试图制作一个机器人,我想从用户消息中获取一个数字。这是我的尝试

Client.on ("message", (message) => {
    if (message.author.bot) return;

    if (message.content.startsWith (Config.prefix + 'resetHWID')){
        const Embed = new Discord.MessageEmbed()
            .setColor('#6f0bd4')
            .setTitle('Success!')
            .setDescription('Successfully reset HWID for user ' + (message.content - message.content.startsWith (Config.prefix + 'resetHWID')))
        message.channel.send(Embed);
    }
});

这是我发送的消息: flop.resetHWID 5

这是机器人发回的内容: Image

预期输出为:'成功为用户 5 重置 HWID

有什么办法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

虽然您可以使用正则表达式,但我认为您正在寻找的是子字符串。您要查找命令名称后的消息内容

这应该可以帮助您实现这一目标:

Client.on ("message", (message) => {
    if (message.author.bot) return;

    if (message.content.startsWith (Config.prefix + 'resetHWID ')){
        const Embed = new Discord.MessageEmbed()
            .setColor('#6f0bd4')
            .setTitle('Success!')
            .setDescription('Successfully reset HWID for user ' + message.content.substring((Config.prefix + 'resetHWID ').length));
        message.channel.send(Embed);
    }
});

答案 1 :(得分:-1)

我认为您正在寻找的答案是 regex。您可以匹配消息内容并找到号码。

let str = 'The time is 8 o clock';
let matched = str.match(/\d+/) // returns [8] (Array!)
let str2 = 'The answer is 42';
let newMatched = str2.match(/\d+/) //returns [42]