使用indexOf缩短if语句

时间:2014-04-02 13:30:52

标签: javascript if-statement

我有一个if语句。

if(content.indexOf("a") > -1 || content.indexOf("b") >-1 || content.indexOf("c") > -1 || content.indexOf("d") > -1)

是否有任何解决方案可以缩短这条线?

3 个答案:

答案 0 :(得分:4)

使用正则表达式...

if (content.match(/[abcd]/)) 

或者简单循环可能更合适,具体取决于您的实际数据:

['a', 'b', 'c', 'd'].forEach(function (char) {
  if (content.indexOf(char) > -1) {
    // ...
  }
});

答案 1 :(得分:2)

试试这个:

if (content.match(/[abcd]/)) 

甚至更短

if (content.match(/[a-d]/)) 

答案 2 :(得分:2)

为了完整起见,我会在这里留下Array.prototype.some方法。

if (["a", "b", "c", "d"].some(function(char) {
    return content.indexOf(char) !== -1;
})) {
    ...
}