什么是多个元素的indexOf()方法的替代品,以及与&&运算符一起使用时不与||一起使用操作员。
例:
var fruit = 'banana,lemon,mango,apple';
if ( fruit.indexOf('banana') > -1 && fruit.indexOf('lemon') > -1 && fruit.indexOf('mango') > -1 ) {
alert('found');
}
随着|| (或)运营商我找到了这个解决方案:fruit.match(/(banana|lemon|mango)/)
您可以使用数组并检查数组的every
元素是否通过了测试:
var fruit = 'banana,lemon,mango,apple';
console.log(
['banana', 'lemon', 'mango', 'apple'].every(str => fruit.includes(str))
);
对于正则表达式解决方案,您可以使用多个前瞻:
var fruit = 'banana,lemon,mango,apple';
console.log(
/^(?=.*banana)(?=.*lemon)(?=.*mango)(?=.*apple)/.test(fruit)
);
console.log(
/^(?=.*FruitThatDoesntExist)(?=.*lemon)(?=.*mango)(?=.*apple)/.test(fruit)
);
请注意,<regex>.test
(根据字符串是否通过测试返回true或false)可能比str.match(<regex>)
(返回匹配对象)更合适