Node.js 如何检查消息内容而不包括用户';目录中的姓名
我得到了一个命令im测试,使机器人发送给我一个消息时,一个特定的字符串被传递到一个通道 我的命令运行良好,但bot似乎也将用户名包含在内容中 我是通过将我的名字作为机器人运行if语句的字符串进行测试发现这一点的,并且发现即使只键入Hi或任何其他消息也会触发if语句,因为我的名字“Jerseyetr”包含在消息的内容中Node.js 如何检查消息内容而不包括用户';目录中的姓名,node.js,discord,discord.js,Node.js,Discord,Discord.js,我得到了一个命令im测试,使机器人发送给我一个消息时,一个特定的字符串被传递到一个通道 我的命令运行良好,但bot似乎也将用户名包含在内容中 我是通过将我的名字作为机器人运行if语句的字符串进行测试发现这一点的,并且发现即使只键入Hi或任何其他消息也会触发if语句,因为我的名字“Jerseyetr”包含在消息的内容中 if (message.content.includes('jersey') || ('jerseyetr')) { try{
if (message.content.includes('jersey') || ('jerseyetr')) {
try{
console.log('it worked!');
//jersey.send('testing!');
//client.users.get("xxxxxx").send("test");
return;
//guild.member
}
catch (err){
console.log(err);
console.log('it did NOT work. Sad face');
}
}
过滤掉用户名的正确方法是什么?这里的问题是,您总是输入if,而从不输入else(如果有) 为什么?因为您的情况。OR条件
|
将首先测试消息.content.includes('jersey')
。如果它是true
它将进入If,如果它是false它将测试第二个条件。但是你的第二个条件总是true,因为字符串'jerseyetr'
不是空的,JavaScriptps认为它是true。列出所有被认为是错误的内容。所有其他值都被认为是
true
我猜你想这么做:
if(message.content.includes('jersey')| | message.content.includes('jerseyetr')){
...
}
但是,不需要第二个表达式,因为jersey
包含在jerseyetr
中,因此如果消息包含jerseyetr
,它也将包含jersey
您将看到,Discord在message.content
中不包括用户名,而只包括消息的文本
旁注:如果您想在消息中测试类似的内容,可以使用regexp:
/jersey/.test(message.content)
这里的问题是,您总是输入if,而从不输入else(如果有)
为什么?因为您的情况。OR条件|
将首先测试消息.content.includes('jersey')
。如果它是true
它将进入If,如果它是false它将测试第二个条件。但是你的第二个条件总是true,因为字符串'jerseyetr'
不是空的,JavaScriptps认为它是true。列出所有被认为是错误的内容。所有其他值都被认为是
true
我猜你想这么做:
if(message.content.includes('jersey')| | message.content.includes('jerseyetr')){
...
}
但是,不需要第二个表达式,因为jersey
包含在jerseyetr
中,因此如果消息包含jerseyetr
,它也将包含jersey
您将看到,Discord在message.content
中不包括用户名,而只包括消息的文本
旁注:如果您想在消息中测试类似的内容,可以使用regexp:
/jersey/.test(message.content)
调用GET route时的响应是什么?您是否也可以更新它?调用GET route时的响应是什么?您是否也可以更新它?实际上不需要第二个表达式;jerseyetr
本身包含jersey
,因此第一个表达式的计算结果无论如何都是true
。@slothiful如果消息中包含jersey,是的,你是对的。我会添加一条关于这一点的注释,很好。谢谢你,我完全是因为精力不足而疏忽了。谢谢你指出了修复方法。实际上不需要第二个表达式;jersey
本身包含jersey
,因此第一个表达式的计算结果将为>不管怎样,这都是真的。@slothiful如果邮件中包含jersey,那么你是对的。我会就此添加一条注释,很好。谢谢你,我完全是因为精力不足而疏忽了。谢谢你指出了解决方法。