我想测试数组中的任何字符串是否与特定字符串匹配。但是,数组中的字符串可能包含星号模式。
var toTest = ["foo_*", "*foo_1", "foo_1*", "bar", "*foo"];
var toMatch = "foo_1";
对于此样本,结果为true,因为foo_*
,*foo_1
和foo_1*
将与foo_1
匹配,但bar
和{{1} }不会。
我尝试将*foo
函数与lodash split
一起使用,但似乎过于复杂了,我无法使其始终如一地工作。
_.some
答案 0 :(得分:2)
要获得预期的结果,请使用以下使用filter,indexOf和replace的选项
var toTest = ["foo_*", "*foo_1", "foo_1*", "bar", "*_foo"];
var toMatch = "foo_1";
console.log(toTest.filter(v => toMatch.indexOf(v.replace('*', '')) !== -1))