當前位置:網站首頁>js處理文件名稱和後綴名,分開獲取。附件名出現多個點“.”符合時,如何兼容處理

js處理文件名稱和後綴名,分開獲取。附件名出現多個點“.”符合時,如何兼容處理

2022-01-27 21:14:45 草樣的年華

我們在開發過程中,經常會遇到附件讀取、下載、查看等操作,但是有些系統的接口需要區分是那種文件的類型才能下載、查看等操作,這個時候我們就要區分附件的類型,看它的後綴名是多少就能處理請求對應的接口,但是在處理過程中,常常會遇到一些截取兼容性的問題,比如a.png,可以直接用split('.')就解决,但是這種1.a.png,a.aa.jpg,  aa.bb.cc.zip這種就不能只用split()去處理了,處理的方式很多,看自己的處理方式而已,下面分享下我處理的方法,不喜勿噴,直接上代碼

//返回值:fileName 原始全稱文件名,emoverExtFileName 去除後綴的文件名,ext 文件後綴名
fileExtName(fileAllName){  
      let file = fileAllName;
      let index = file.indexOf('.'); // .字符出現的比特置
      let num = 0; // ‘.’出現的次數
      while(index !== -1) {
        num++;
        index = file.indexOf('.',index + 1);
      }
      console.log('.一共出現了' + num + '次');
      if(num===1){//文件名只出現一次'.'符號
        let parmsFile = fileAllName;
        let getFileExtName = parmsFile.split('.')
        let fileName = getFileExtName[0];
        let extName = getFileExtName[1];
        return {
          fileName:fileAllName,
          emoverExtFileName:fileName,
          ext:extName
        }
      }else{//文件名只出現多次'.'符號
        let parmsFile = fileAllName;
        let getFileExtName = parmsFile.split('.')
        let extName = getFileExtName[getFileExtName.length-1];
        let fileName = '';
        for (let i =0;i<getFileExtName.length;i++){
          if(i===getFileExtName.length-1) break
          fileName += getFileExtName[i]+'.'
        }
        fileName = fileName.substr(0,fileName.length-1)
        return {
          fileName:fileAllName,
          emoverExtFileName:fileName,
          ext:extName
        }
      }
    }

運行結果:

1、文件名:a.png

2, 文件名:1.aaa.png

3、文件名:aa.bb.cc.png

4、文件名:3.a.zip

版權聲明
本文為[草樣的年華]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201272114451515.html

隨機推薦