使用星号(通配符)匹配字符串

时间:2019-01-08 15:32:24

标签: javascript

我想测试数组中的任何字符串是否与特定字符串匹配。但是,数组中的字符串可能包含星号模式。

var toTest = ["foo_*", "*foo_1", "foo_1*", "bar", "*foo"];
var toMatch = "foo_1";

对于此样本,结果为true,因为foo_**foo_1foo_1*将与foo_1匹配,但bar和{{1} }不会。

我尝试将*foo函数与lodash split一起使用,但似乎过于复杂了,我无法使其始终如一地工作。

_.some

1 个答案:

答案 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))

相关问题