Как удалить слово, которое не содержит буквенно-цифровых символов? - PullRequest
0 голосов
/ 17 февраля 2019

Как удалить слово, которое не содержит буквенно-цифровых символов?

, но пользователь может обойти это с помощью bann.edWord1 или аналогичного ...

var badWords = [
  'bannedWord1',
  'bannedWord2',
  'bannedWord3',
  'bannedWord4'
];

bot.on('message', message => {
  var words = message.content.toLowerCase().trim().match(/\w+|\s+|[^\s\w]+/g);
  var containsBadWord = words.some(word => {
    return badWords.includes(word);
  });
  if (containsBadWord) {
    message.delete(1);
    message.channel.send("That word's not appropriate!");
  }
});

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете использовать предложенное решение здесь , чтобы удалить не алфавитно-цифровые символы из вашей строки и впоследствии проверить наличие "плохих слов".

Пример:

var badWords = [
  'bannedWord1',
  'bannedWord2',
  'bannedWord3',
  'bannedWord4'
];

bot.on('message', message => {
  var textOnly = message.content.replace(/\W/g, '');

  for (i=0; i<badWords.length; i++) {
    if (textOnly.indexOf(badWords[i].replace(/\W/g, '')) !== -1) {
      message.delete(1);
      message.channel.send("That word's not appropriate!");
      break;
    }
  }
});

// bannedWord1 fill be filtered
// ban.ne.d Word 1 will be filtered, too
...