首页 > 解决方案 > Javascript:检查字符串中匹配的关键字数组

问题描述

我想要完成的事情(伪代码):

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

caption是一个动态变量。我可以使用一个关键字让它工作,但我试图让它检查一个单词列表。不需要与includes()一起使用,只要有效。

感谢您的时间!

标签: javascriptarraysstringvariablessubstring

解决方案


您可以创建一个关键字数组并使用它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")
}


推荐阅读