您如何对 discord 机器人进行编程以检测一个单词,并且仅在不和谐中检测该单词.js?



据我所知,这个问题还没有被问过,所以在这里。 在我的代码中,我让我的机器人对特定的触发词做出反应,它可以工作,但并非没有问题。 我遇到的问题是我的机器人正在响应一个小单词,例如"笔"并对单词做出反应,但也对"发生"这样的单词做出反应,因为它里面有笔。

bot.on('message', message=>{
if(message.content.toLowerCase().includes('pen'.toLowerCase())) {
if (message.author.id === bot.user.id) return;
message.channel.send(pen[Math.floor(Math.random() * pen.length)]);
}});

这是代码。我应该提到我对JavaScript很陌生

。我能具体做些什么来让它只对"笔"这个词做出反应吗?

您可以在正则表达式中使用单词边界来仅匹配特定单词,而不匹配其他单词的子字符串。请注意,末尾的i标志允许它匹配大写和小写"pen"。

/bpenb/i

例如,上面的表达式将匹配单独写为单词的"笔",但不会匹配"发生"中的"笔"。以下是在 JavaScript 中使用它的方法:

/bpenb/i.test('i have a pen') // true
/bpenb/i.test('that happened') // false

最后,您的代码将如下所示:

bot.on('message', message => {
if(/bpenb/i.test(message.content)) {
if (message.author.id === bot.user.id) return;
message.channel.send(pen[Math.floor(Math.random() * pen.length)]);
}
}
);

如果你想玩弄这个表达式,我已经把它发布到RegExr。

您需要检查message.content是否等于pen

if(message.content.toLowerCase() === 'pen')

最新更新