анти-мат бот discord.js

Я нашёл вот это

Но это не совсем то, что мне надо. Мне надо что-бы он удалял только сообщения с матом, а без мата оставлял.Вот что у меня получилось:

bot.on('message', async message => {
  if(message.author.id == "748788241867603979"){
    let filterwordslist = ["лох", "пидор", "сука", "блять"];
    let messageArray = message.content.split(" ");
    let args = messageArray.slice(0);
    const [...restArgs] = args;
    const text = restArgs.join(' ');
    let edit = text;

    filterwordslist.forEach(item => {
      edit = edit.replace(
        new RegExp(`(^|[^а-я])${item}([^а-я]|$)`, "gmi"),
        "$1`*цензура*`$2"
      );
    });
    if(сообщение с матом){
      message.delete();
      message.channel.send({
        embed: new Discord.MessageEmbed()
          .setColor("RANDOM")
          .setAuthor('FilterWords', message.guild.iconURL())
          .setDescription(`${message.author}: ` + edit)
      });
    }
  }
})

Вопрос у меня в этом условии:

if(сообщение с матом){

Ответы (3 шт):

Автор решения: yar85

Судя по коду, переменная edit в результате выполнения метода forEach содержит текст с заменами; а переменная text (выше) - похоже, содержит нетронутый исходный текст.
Значит, сравнив значение этих переменных, можно определить наличие замен (а следовательно, и мата) в исходном тексте:

/*....*/
filterwordslist.forEach(item => {
  edit = edit.replace(
    new RegExp(`(^|[^а-я])${item}([^а-я]|$)`, "gmi"),
    "$1`*цензура*`$2"
  );
});
if (edit !== text) {
  message.delete();
  /*....*/
}
→ Ссылка
Автор решения: Qwertiy
if (message.content.match(/(?<![а-яё])(плохоеслово|другоеслово|ещё)(?![а-яё])/i)) {
→ Ссылка
Автор решения: Qwertiy

Вынеси список запрещённых слов в константу вне всех методов:

const blacklist = new Set(["слово", "второе", "третье"]);

А потом проверяй:

if (message.content.match(/[а-яё]/gi)?.some(word => blacklist.has(word))) {

Это одно из самых эффективных решений.


Если версия ноды не позволяет использовать ?., то можно вынести в переменную и сделать 2 проверки, либо написать так:

if ((message.content.match(/[а-яё]/gi) || []).some(word => blacklist.has(word))) {
→ Ссылка