javascript - 多个元素的 indexOf() 方法的替代方法
问题描述
多个元素的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
(根据字符串是否通过测试返回真或假)可能比str.match(<regex>)
(返回匹配对象)更合适
推荐阅读
- javascript - 在 React 方面需要帮助,从特定的反应页面中删除一个组件,而不是全部
- python - 类型解算器音乐列表中的形状错误?
- docker - 詹金斯管道未找到 Terraform
- python - Python:如何在 Pivotal Cloud Foundry 中访问 cx_Oracle?
- ionic-framework - ion-text-wrap 在 ion-item 和 ion-row 内不起作用
- r - 顶点标签 igraph 包中的意见变化
- java - Camel Content-Type 标头中的引号
- python - ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型列表)
- javascript - 渲染 Firebase 结果时,对象作为 React 子级无效(找到:[object Promise])
- php - 在多个月中按月按比例分配天数