Javascript: проверка совпадения массива ключевых слов в строке - PullRequest
0 голосов
/ 27 февраля 2019

Что я пытаюсь выполнить (псевдокод):

if caption.includes("dog" or "fish" or "bird" or "cat") { 
  // notify me 
}

caption - это динамическая переменная.Я могу заставить его работать, используя одно ключевое слово, но я пытаюсь проверить его по списку слов.Не обязательно быть с include (), что бы ни работало.

Спасибо за потраченное время!

Ответы [ 2 ]

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

Не нужно создавать дополнительный массив, используйте https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search

let caption = 'cat'
if(caption.search(/dog|fish|cat|bird/) !== -1) {
	console.log('found')
}
0 голосов
/ 27 февраля 2019

Вы можете создать массив ключевых слов и использовать some, чтобы проверить, существует ли хотя бы одно из них в строке, например:

const caption = "I love dogs";
const animals = ["dog", "fish", "bird", "cat"];
const exists = animals.some(animal => caption.includes(animal))

if (exists) {
  console.log("Yes");
  // notify 
}

Или вы можете использовать регулярное выражение, например:

const animals = ["dog", "fish", "bird", "cat"];
const regex = new RegExp(animals.join("|")) // animals seperated by a pipe "|"

if (regex.test("I love cats")) {
  console.log("Yes");
}

// if you don't want to create an array then:
if (/dog|fish|bird|cat/.test("I love elephants")) {
  console.log("Yes");
} else {
  console.log("No")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...