Как проверить, присутствует ли ключевое слово независимо от заглавных букв? - PullRequest
1 голос
/ 10 февраля 2020

Я пишу программу, которая ищет определенные c ключевые слова, а затем выполняет действие, только когда ключевое слово присутствует в сообщении. Я испытываю трудности, пытаясь сделать так, чтобы он подбирал ключевые слова независимо от их заглавных букв. Ниже приведен пример того, что у меня есть в настоящее время.

for (var i = 0; i < keyword.length; i++) {

      if (msg.content.includes (keyword[i])) {
      msg.channel.send("Orange")
      }

var keyword = ["Apple","Banana"] 

Единственный способ, которым я понял, как это сделать - это добавить каждый вариант в список ключевых слов. Как бы я сделал так, чтобы он мог обнаружить, например, «яблоко» или «BaNaNa», не добавляя эти варианты в список ключевых слов?

Ответы [ 4 ]

1 голос
/ 10 февраля 2020

Если ваше сообщение представляет собой строку, просто сделайте все это строчными и сопоставьте их с строчными ключевыми словами.

let message = msg.content.toLowerCase();
if (message.includes(keyword[i].toLowerCase()) {
    ....
}
0 голосов
/ 10 февраля 2020

Если у меня есть большая строка «Здравствуйте, Марко, как у вас дела?», И у меня есть другая строка, «MarCo», и я хочу проверить, находится ли вторая строка в первой, я бы сделал

const needle = 'MarCo';
const haystack = 'Hey Marco, how are you doing?'

const inc = haystack.toLowerCase().includes(needle.toLowerCase());
if (inc) {
  console.log('its in there')
} else {
  console.log('not in there');
}
0 голосов
/ 10 февраля 2020

Вы можете преобразовать ваше сообщение и ключевое слово в нижний регистр и проверить существующее ключевое слово в вашем сообщении.

if (msg.content.toLowerCase().includes (keyword[i]).toLowerCase()) {
  msg.channel.send("Orange")
}
0 голосов
/ 10 февраля 2020

Преобразовать в нижний регистр как базу данных, так и условия поиска.

...