15 lines
431 B
TypeScript
15 lines
431 B
TypeScript
const RE_NOT_LETTER = /[^\wа-яё]+/;
|
||
|
||
export default function searchWords(haystack: string, needle: string) {
|
||
if (!haystack || !needle) {
|
||
return false;
|
||
}
|
||
|
||
const haystackWords = haystack.toLowerCase().split(RE_NOT_LETTER);
|
||
const needleWords = needle.toLowerCase().split(RE_NOT_LETTER);
|
||
|
||
return needleWords.every((needleWord) => (
|
||
haystackWords.some((haystackWord) => haystackWord.startsWith(needleWord))
|
||
));
|
||
}
|