JavaScript字符串PARTIAL匹配数组中的每个单词

问题描述 投票:0回答:1

我希望此搜索功能能够部分匹配数组中的每个单词。考虑以下情况:

const searchTerms = ["apple", "oranges", "bananas"]
const compareAgainst1 = ["apple", "oranges" "bananas"] // should return TRUE
const compareAgainst2 = ["apple", "oranges"] // should return FALSE
const compareAgainst3 = ["appl", "orang", "banan"] // should return TRUE
const compareAgainst4 = ["appl", "orang"] // should return FALSE

到目前为止,我有这个:

const regex = new RegExp('(^|[^a-zA-Z0-9])(' + searchTerms.join('|') + ')([^a-zA-Z0-9]|$)', 'g')
const test = regex.test("apple oranges bananas")

上面的代码对数组中的某些单词进行精确匹配的测试。

有什么想法吗?

javascript regex search
1个回答
0
投票

这是您可以开始的。它检查每个术语是否与给定数组完全匹配,但这只是为了简化您的解决方案。我将尝试找出一些东西

const searchTerms = ["apple", "oranges", "bananas"]
const compareAgainst1 = ["apple", "oranges", "bananas"]
const compareAgainst2 = ["apple", "oranges"]
const compareAgainst3 = ["appl", "orang", "banan"]
const compareAgainst4 = ["appl", "orang"]

function search(searchTerms, compareAgainst) {
  return searchTerms.every(term => compareAgainst.includes(term));
}

console.log(search(searchTerms, compareAgainst1));
console.log(search(searchTerms, compareAgainst2));
console.log(search(searchTerms, compareAgainst3));
console.log(search(searchTerms, compareAgainst4));
© www.soinside.com 2019 - 2024. All rights reserved.