检查不和谐消息中的特定单词

时间:2020-04-05 21:45:13

标签: javascript discord discord.js

我试图弄清楚如何从整个消息中得到一个特定的单词。就像使用亵渎过滤器一样。

    for (let x = 0; x < profanities.length; x++) {
    if (message.content.toUpperCase().includes(profanities[x].toUpperCase())) {
        message.channel.send('Oooooooh you said a bad word!');
        client.channels.get('484375912389935126').send(`Message was deleted due to use of a blocked word:\n\n"${message.content}"`);
        message.delete();
        return;
    }
}

现在这行得通,除了以下事实:如果在另一个单词中说了一个单词,它也会因为.includes而找到它,例如,如果我要阻止“ bum”,而有人说“ bumble”,它将删除“ bumble”,因为好。亵渎过滤条件很好,但我想为会员做一个有趣的事情:

    const words = message.content.toLowerCase();
    if (words.includes('bum')) {
        setTimeout(function() {
          message.channel.send('Are we talking about <@memberID>?!');
        }, 1500);
    }

我使用“ memberID”代替了真实的ID。但这会在“ bumble”中找到“ bum”,但我只希望它在邮件中将“ bum”作为一个单独的词来查找。像“这个混蛋很奇怪”之类的东西。

1 个答案:

答案 0 :(得分:0)

就像其他答案一样,请使用正则表达式:

if (/\bbum\b/i.test(message.content)) {
  setTimeout(function() {
    message.channel.send('Are we talking about <@memberID>?!');
  }, 1500)
}

\b检查单词边界,而i使其不区分大小写。