JS命令不允许字母,只允许数字(光盘机器人)



我可能对此视而不见。但是,我正在开发一个 DiscordJS 机器人 - 它有一个积分系统,可以使用!give将积分从用户A 传递给用户 B

点传递本身工作正常,所以这不是这里的焦点。


问题是,如果我写:

给@Username 100- 它按预期进行,它将 100 传输到 MENIX。

"从@MENIX发送了 100 个到@Usernames的帐户">


那么现在,如果我写:

!给@Username狗- 然后它回来了;

"从@MENIX把狗送到@Usernames的账户">


情况在这里,如果用户输入数字以外的任何内容,我希望打印错误 - 字母、句子等应该返回错误(Ea,你不能狗!给@username狗(


当前的完整脚本如下

const Discord = require("discord.js");
const functions = require('.././functions.js')
module.exports.run = async (bot, message, args, con, canUseCommand, config) => {
if (!message.member.roles.some(r => ["Admin"].includes(r.name)))
return message.reply("Sorry, you don't have permissions to use this!");
let target = message.mentions.users.first()
let user = message.author
let points = args[1]
if (args[1]) {
await con.query(`SELECT * FROM pts WHERE id = '${message.author.id}'`, async (err, rows) => {
functions.addCounter();
let points2 = Math.round(rows[0].points);
if (!target) {
return message.channel.send(`Couldn't find user. Please remember to @ Tag the user & Try again!`)
}
if (!args[0]) {
return message.channel.send(`Woops, looks like you forgot to specify an amount to give`)
}
if (message.content.includes('-')) { //tries to remove negative point giving
return message.channel.send(`Negative points can not be given.`)
}
if (points2 < points) {
return message.channel.send(`Oops trying to give too much points ${message.author}. You currently have :moneybag: ${functions.formatNumber(points2)} .`)
}
await functions.removeMoney(user, points,"remove-points", con)
await functions.addMoney(target, points,"addpoints", con)
message.channel.send(`Sent ${points} from ${message.author} to ${target.toString()}'s account`)

})
}
}
module.exports.help = {
name: "give"
}

我试图使用(message.content.include(,但我无法为我自己的问题找到合适的答案。

我希望有人对如何只允许数字输入有想法,如果用户写一个单词/句子 - 它会返回一条错误消息,表明输入无效。

isNaN(( 函数。

isNaN(( – 代表"不是数字",如果变量不是数字,则返回 true,否则返回 false。

if(isNaN(points)) return message.reply("Error");

最新更新