Cha*_*ies 1 javascript file-extension if-statement operators
我有一个表单,人们可以在其中输入文件路径.我想确保他们输入的路径指向图片,所以这是我认为可行的.
function checkExt()
{
var extension= /* I know that the code to cut the extension off of the file
is working correctly so for now let's just go with it ok */
if(extension!="jpg" || "gif" || "bmp" || "png" || "whatever else")
alert("The file extension you have entered is not supported");
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我已将其跟踪到if语句,因为如果我只选择一种文件来检查,那么它将正常工作.所以我的问题是你到底要改变什么才能使这个东西正常工作.我已经在这里待了大约三个小时了,这让我很生气.感谢您提前获得的所有帮助.
这是一种语法和逻辑错误.它应该是:
if (extension != "jpg" &&
extension != "gif" &&
extension != "bmp" &&
extension != "png" &&
extension != "whatever else") {
// This will execute when the extension is NOT one of the expected
// extensions.
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用正则表达式更简洁地处理它:
if (!/jpg|gif|bmp|png|whatever/.test(extension)) {
// This will execute when the extension is NOT one of the expected
// extensions.
}
Run Code Online (Sandbox Code Playgroud)
上面的例子中执行该if语句的主体时的值extension是不支持的值中的一个.如果您希望在值为extensions其中一个支持值时执行if语句的主体,则可以将逻辑从不等于/更改为等于/或,如下所示:
if (extension == "jpg" ||
extension == "gif" ||
extension == "bmp" ||
extension == "png" ||
extension == "whatever else") {
// This will execute when the extension is one of the expected extensions.
}
Run Code Online (Sandbox Code Playgroud)
而且,使用正则表达式会更简洁:
// I just removed the leading ! from the test case.
if (/jpg|gif|bmp|png|whatever/.test(extension)) {
// This will execute when the extension is one of the expected extensions.
}
Run Code Online (Sandbox Code Playgroud)