Javascript if语句具有多个允许条件[重复]

在JS中,我试图检查扩展名是否以“ png”“ jpg”或“

gif”结尾。我知道这可以通过switch语句来完成,但是我想知道是否有一种更简单的方法可以将所有if条件都放入条件语句中。喜欢:

    if (aExtensions[i].toLowerCase() == ('jpg' || 'png' || 'gif')) {}

实现此目标的最佳方法是什么?

回答:

您可以使用如下数组:

var extensions = ["jpg", "png", "gif"];

if (extensions.indexOf(aExtensions[i].toLowerCase()) > -1) {

// match

}

在这种情况下,您将存储“有效”扩展名。然后,您可以使用的indexOf方法Array来查找数组中的任何项目是否与您正在查看的特定扩展名相匹配-

检查值是否0大于或等于。

indexOf较旧的浏览器不支持此功能,因此您需要包括一个polyfill来对其进行备份。有几种解决方案。

当然,如果只想使用if语句,则可以使用以下格式:

var ext = aExtensions[i].toLowerCase();

if (ext == "jpg" || ext == "png" || ext == "gif") {

// match

}

我可以想到的另一种可能性是switch声明,例如:

var ext = aExtensions[i].toLowerCase();

switch (ext) {

case "jpg":

case "png":

case "gif":

// match

break;

case default:

// No match

}

我也可以包括它(其他答案肯定是第一个),但是我想到的还有一个使用正则表达式,例如:

if (/jpg|png|gif/i.test(aExtensions[i])) {

// match

}

但是请注意,您将永远无法单独获得这些扩展,这就是为什么我希望我提供的前两个选项之一。

以上是 Javascript if语句具有多个允许条件[重复] 的全部内容, 来源链接: utcz.com/qa/430478.html

回到顶部