js处理文件名称和后缀名,分开获取。附件名出现多个点“.”符合时,如何兼容处理

我们在开发过程中,经常会遇到附件读取、下载、查看等操作,但是有些系统的接口需要区分是那种文件的类型才能下载、查看等操作,这个时候我们就要区分附件的类型,看它的后缀名是多少就能处理请求对应的接口,但是在处理过程中,常常会遇到一些截取兼容性的问题,比如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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草样的年华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值