Це можна зробити, використовуючи деякі / будь-які методи Array та RegEx.
Щоб перевірити, чи ВСІ слова зі списку (масиву) присутні в рядку:
const multiSearchAnd = (text, searchWords) => (
searchWords.every((el) => {
return text.match(new RegExp(el,"i"))
})
)
multiSearchAnd("Chelsey Dietrich Engineer 2018-12-11 Hire", ["cle", "hire"])
multiSearchAnd("Chelsey Dietrich Engineer 2018-12-11 Hire", ["che", "hire"])
Щоб перевірити, чи є в рядку ЛЮБІ слова зі списку (масиву):
const multiSearchOr = (text, searchWords) => (
searchWords.some((el) => {
return text.match(new RegExp(el,"i"))
})
)
multiSearchOr("Chelsey Dietrich Engineer 2018-12-11 Hire", ["che", "hire"])
multiSearchOr("Chelsey Dietrich Engineer 2018-12-11 Hire", ["aaa", "hire"])
multiSearchOr("Chelsey Dietrich Engineer 2018-12-11 Hire", ["che", "zzzz"])
multiSearchOr("Chelsey Dietrich Engineer 2018-12-11 Hire", ["aaa", "1111"])
or
означатиме, що принаймні одного збігу буде достатньо.