【问题标题】:How to get Extension of image in angular?如何以角度获得图像的扩展?
【发布时间】:2019-05-22 15:39:01
【问题描述】:

在这里,我使用以下代码检查图像扩展。 imageName.split(".").pop() 使用 split and pop 我得到了图像扩展名,但在此之后我必须检查这个扩展名是否与这个匹配,因为我必须检查多个或条件,所以它使代码的过程很慢所以有没有可能减少代码并减少 OR 条件。

例如。如果 jpEg 扩展图像那一次只有一个条件(extn == jpeg) 是检查所有类型小,大写扩展 ('jpeg','Jpeg','jPeg','jpEg','jpeG','JPeg','JpEg','JpeG','jPEg','jPeG','jpEG','jPEG','JPeG','JPEg','JpEG','JPEG') 并做更少或条件

previewFiles(imageName){
 console.log(imagename);  // 125.jpEg

 var extn = imageName.split(".").pop();

   console.log(extn);  // jpEg

  if((extn == 'pdf') || (extn == 'PDF') || (extn == 'pdF') || (extn == 'pDf') ||
     (extn == 'pDF') || (extn == 'PDf') || (extn == 'PdF') || (extn == 'Pdf') ||
     (extn == 'jpg') || (extn == 'JPG') || (extn == 'jpG') || (extn == 'jPg') ||
     (extn == 'jPG') || (extn == 'JPg') || (extn == 'JpG') || (extn == 'Jpg') ||
     (extn == 'gif') || (extn == 'GIF') || (extn == 'giF') || (extn == 'gIf') ||
     (extn == 'gIF') || (extn == 'GIf') || (extn == 'GiF') || (extn == 'Gif') ||
     (extn == 'png') || (extn == 'PNG') || (extn == 'pnG') || (extn == 'pNg') ||
     (extn == 'pNG') || (extn == 'PNg') || (extn == 'PnG') || (extn == 'Png') ||
     (extn == 'tif') || (extn == 'TIF') || (extn == 'tiF') || (extn == 'tIf') ||
     (extn == 'tIF') || (extn == 'TIf') || (extn == 'TiF') || (extn == 'Tif') ||
     (extn == 'jpeg') || (extn == 'Jpeg') || (extn == 'jPeg') || (extn == 'jpEg') ||
     (extn == 'jpeG') || (extn == 'JPeg') || (extn == 'JpEg') || (extn == 'JpeG') ||
     (extn == 'jPEg') || (extn == 'jPeG' ) || (extn == 'jpEG' ) || (extn == 'jPEG' ) ||
     (extn == 'JPeG' ) || (extn == 'JPEg') || (extn == 'JpEG') || (extn == 'JPEG') ||
     (extn == 'tiff') || (extn == 'Tiff' ) || (extn == 'tIff') || (extn == 'tiFf' ) ||
    (extn == 'tifF') || (extn == 'TIff') || (extn == 'TiFf') || (extn == 'TifF') ||
     (extn == 'tIFf') || (extn == 'tIfF') || (extn == 'tiFF') || (extn == 'tIFF') ||
     (extn == 'TIfF') || (extn == 'TIFf') || (extn == 'TiFF') || (extn == 'TIFF')){
      console.log("extension of image is matched");    
   }else{
      console.log("extension of image is not matched");
   }
}

【问题讨论】:

  • 请使用toLowerCase() 转换任何扩展名。然后所有扩展名将更改为小写字符串。您将轻松检查
  • PDF 不是图像。

标签: javascript angular


【解决方案1】:

您可以简单地在一个字符串上调用extn.toLowerCase(),每个JpEgjpEg 都以小写jpeg 表示。

您还可以做的是在另一个变量中使用可用的扩展名,并检查给定的扩展名是否与数组中的任何一个匹配

const availableExtensions = new Set(['jpeg', 'tiff', 'gif'])

if(availableExtensions.has(extn.toLowerCase())) {
    console.log("extension of image is matched")
}

【讨论】:

    【解决方案2】:

    您可以使用带有交替的正则表达式和 /i 进行不区分大小写的比较或使用 toLowerCase 进行字符串比较:

    let extn = "TIFf";
    const regex = /(?:pdf|jpeg|jpg|tiff?|gif|png)/i;
    if (regex.test(extn)) {
      console.log(extn);
    }
    
    let valid = [
      "pdf", "tif", "tiff", "jpg", "jpeg", "gif", "png"
    ];
    
    if (valid.includes(extn.toLowerCase())) {
      console.log(extn);
    }

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 2021-09-03
      • 1970-01-01
      • 2016-11-13
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      相关资源
      最近更新 更多