如何在JavaScript中嵌套OR语句?

3

目前我正在创建一个文件管理器。

我想要检查用户是否选择了一个视频文件。该文件可以是 mov, f4v, flv, mp4swf 格式中的任意一种。

我想要检查我的变量 ext 是否属于这些格式之一。

我现在有的代码如下:

if(ext == ('mov' || 'f4v' || 'flv' || 'mp4' || 'swf'))
{
    //Do something
}

有人知道我该如何让它工作吗?我不想使用switch,因为会有很多情况。

3个回答

9

您需要明确地将变量与这些值进行比较。

if( ext === 'mov' || ext === 'f4v' || ... ) { 
}

但是,RegExp来拯救我们,我们可以这样做:

if( /mov|f4v|flv|mp4|swf/.test( ext ) ) { 
}

这次正则表达式又救了我。我不得不删除第一个 |,使其变成 /mov|f4v|flv|mp4|swf/ - Ron van der Heijden

2

你需要将它们分开,像这样:

if(ext === "mov" || ext === "f4v" || ext === "flv" || ext === "mp4" || ext === "swf")
{
    // do stuff
}

你可以考虑将所有不同的扩展名放入一个数组中,并检查该扩展名是否存在于该数组中。

2

以下是一种非常好的方法:

var exts = {
     "mov" : null,
     "f4v" : null,
     "flv" : null,
     "mp4" : null,
     "swf" : null,
}

if(ext in exts){
    // world peace
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接