我的代码需要一些帮助。今天,我开始使用Node.JS和Discord.JS库以及其他工具编写我的第一个Discord机器人。我现在正在使用一个YouTube视频来引导我通过Node.JS。
这是我当前的代码。
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on('message', (message) => {
if(message.content == 'ping') {
message.reply('pong');
}
if(message.content == 'xd') {
message.reply('smh');
}
});
这段代码运行良好。如果你转到第二个message.content
,它里面写了'xd'
。当我在Discord服务器中写入单词xd时,机器人将返回smh
。这样做的问题是,机器人只会在大小写与xd
中完全相同的情况下才返回smh
,但我希望它对所有大写都有效。
就像这样。
if(message.content == 'xd', 'xD', 'XD', 'Xd',) {
message.reply('pong');
}
显然,上面的代码不起作用,但是有什么简单的方法可以做到这一点吗?
干杯。
发布于 2018-07-22 16:09:42
您可以在message.content
上调用.toLowerCase()
将其全部转换为小写:
if (message.content.toLowerCase() == 'xd') {
message.reply('pong');
}
这样,消息的大小写实际上被忽略了。
发布于 2018-07-22 16:09:53
您需要使用toLowerCase()方法将message.content小写,然后将其与"xd string using === operator“进行比较
例如:
if(message.content && message.content.toLowerCase() === 'xd') {
message.reply("smh");
}
发布于 2018-07-23 01:37:04
除了toLowerCase()
函数之外,还有两种允许多个参数的主要方法。
第一种方法是使用||
运算符或or
运算符。这种方法允许您检查完全不同的单词,同时能够获得相同的结果。例如:
if (message.content == "xd" || message.content == "xD" || message.content == "XD") {
message.reply("Why would you do that");
}
第二种方法是使用正则表达式,如正则表达式。正则表达式使用.test()
方法检查字符串中的单词。例如:
let myRegex = /xd/i;
if (myRegex.test(message.content)) { //We are assuming that message.content = "XD"
message.reply("smh");
}
此方法之所以有效,是因为正则表达式会检查单词是否等于它所赋值的正则表达式。/xd/
后面的i
意味着它不关心大小写,所以这是一种检查特定单词的更短的方法,而不关心字母大小写。
https://stackoverflow.com/questions/51466870
复制相似问题