首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何向message.content添加多个参数?

如何向message.content添加多个参数?
EN

Stack Overflow用户
提问于 2018-07-23 00:02:18
回答 5查看 5.9K关注 0票数 1

我的代码需要一些帮助。今天,我开始使用Node.JS和Discord.JS库以及其他工具编写我的第一个Discord机器人。我现在正在使用一个YouTube视频来引导我通过Node.JS。

这是我当前的代码。

代码语言:javascript
复制
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,但我希望它对所有大写都有效。

就像这样。

代码语言:javascript
复制
    if(message.content == 'xd', 'xD', 'XD', 'Xd',) {
        message.reply('pong');
}

显然,上面的代码不起作用,但是有什么简单的方法可以做到这一点吗?

干杯。

EN

回答 5

Stack Overflow用户

发布于 2018-07-23 00:09:42

您可以在message.content上调用.toLowerCase()将其全部转换为小写:

代码语言:javascript
复制
if (message.content.toLowerCase() == 'xd') {
  message.reply('pong');
}

这样,消息的大小写实际上被忽略了。

票数 1
EN

Stack Overflow用户

发布于 2018-07-23 00:09:53

您需要使用toLowerCase()方法将message.content小写,然后将其与"xd string using === operator“进行比较

例如:

代码语言:javascript
复制
if(message.content && message.content.toLowerCase() === 'xd') {
    message.reply("smh");
}
票数 1
EN

Stack Overflow用户

发布于 2018-07-23 09:37:04

除了toLowerCase()函数之外,还有两种允许多个参数的主要方法。

第一种方法是使用||运算符或or运算符。这种方法允许您检查完全不同的单词,同时能够获得相同的结果。例如:

代码语言:javascript
复制
if (message.content == "xd" || message.content == "xD" || message.content == "XD") { 
     message.reply("Why would you do that");
}

第二种方法是使用正则表达式,如正则表达式。正则表达式使用.test()方法检查字符串中的单词。例如:

代码语言:javascript
复制
let myRegex = /xd/i;
if (myRegex.test(message.content)) { //We are assuming that message.content = "XD"
   message.reply("smh");
}

此方法之所以有效,是因为正则表达式会检查单词是否等于它所赋值的正则表达式。/xd/后面的i意味着它不关心大小写,所以这是一种检查特定单词的更短的方法,而不关心字母大小写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51466870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档