今天我试图制作一个机器人,我想从用户消息中获取一个数字。这是我的尝试
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
有什么办法可以解决这个问题吗?
答案 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]