我想检查一个字符串中是否有两个或多个值,无论它们在所述字符串中的位置如何。例如,如果我想要正则表达式中的“OR”条件,我会这样做:
/(a|b)/.test("a") // true
但我需要的是一个"AND";像这样的东西:
/(a&b)/.test("a") // false
/(a&b)/.test("b") // false
/(a&b)/.test("a b") // true
/(b&a)/.test("a b") // true
/(a&b&c)/.test("a b") // false
/(a&b&c)/.test("a c b") // true
显然这种语法是不正确的......
这些值a
, b
,c
等是从数组中提取的。我尝试过使用 and 的组合,eval()
但这indexOf(a) !== -1 && indexOf(b) !== -1
太慢了,这就是我转向正则表达式的原因。