多个元素的 indexOf() 方法的替代方法
Alternative of indexOf() method for multiple elements
对于多个元素,indexOf() 方法 的替代方法是什么,当与 && 运算符 一起使用时,而不是与 ||运算符.
示例:
var fruit = 'banana,lemon,mango,apple';
if ( fruit.indexOf('banana') > -1 && fruit.indexOf('lemon') > -1 && fruit.indexOf('mango') > -1 ) {
alert('found');
}
和|| (OR) Operator 我找到了这个解决方案: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
(returns true 或 false,取决于字符串是否通过测试)可能比 str.match(<regex>)
(returns 匹配对象)
对于多个元素,indexOf() 方法 的替代方法是什么,当与 && 运算符 一起使用时,而不是与 ||运算符.
示例:
var fruit = 'banana,lemon,mango,apple';
if ( fruit.indexOf('banana') > -1 && fruit.indexOf('lemon') > -1 && fruit.indexOf('mango') > -1 ) {
alert('found');
}
和|| (OR) Operator 我找到了这个解决方案: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
(returns true 或 false,取决于字符串是否通过测试)可能比 str.match(<regex>)
(returns 匹配对象)