js-根据文件名称判断文件类型

判断文件类型这里采用根据提取文件名称后缀的方式实现:

export function getFileType(fileName) {
  // 后缀获取
  let suffix = ''
  // 获取类型结果
  let result = ''
  try {
    const flieArr = fileName.split('.')//根据.分割数组
    suffix = flieArr[flieArr.length - 1]//取最后一个
  } catch (err) {//如果fileName为空等.split方法会报错,就走下面的逻辑
    suffix = ''
  }
  // fileName无后缀返回 false
  if (!suffix) {//走catch后返回false
    return false
  }
  suffix = suffix.toLocaleLowerCase()//将后缀所有字母改为小写方便操作
  /*  这里开始写入需要判断的逻辑体  */
  return 'other'//以上的判断逻辑都没return时反馈当前后缀是其他类型文件后缀
}

判断的逻辑体案例如下,可自行添加

  // 图片格式
  const imglist = ['png', 'jpg', 'jpeg', 'bmp', 'gif']//可以将符合该分类的后缀都写入数组里
  // 进行图片匹配
  result = imglist.find(item => item === suffix)
  if (result) {
    return 'image'
  }
  // 匹配txt
  const txtlist = ['txt']
  result = txtlist.find(item => item === suffix)
  if (result) {
    return 'txt'
  }
  // 匹配 excel
  const excelist = ['xls', 'xlsx']
  result = excelist.find(item => item === suffix)
  if (result) {
    return 'excel'
  }
  // 匹配 word
  const wordlist = ['doc', 'docx']
  result = wordlist.find(item => item === suffix)
  if (result) {
    return 'word'
  }
  // 匹配 pdf
  const pdflist = ['pdf']
  result = pdflist.find(item => item === suffix)
  if (result) {
    return 'pdf'
  }
  // 匹配 ppt
  const pptlist = ['ppt', 'pptx']
  result = pptlist.find(item => item === suffix)
  if (result) {
    return 'ppt'
  }
  // 匹配 视频
  const videolist = [
    'mp4',
    'm2v',
    'mkv',
    'rmvb',
    'wmv',
    'avi',
    'flv',
    'mov',
    'm4v'
  ]
  result = videolist.find(item => item === suffix)
  if (result) {
    return 'video'
  }
  // 匹配 音频
  const radiolist = ['mp3', 'wav', 'wmv']
  result = radiolist.find(item => item === suffix)
  if (result) {
    return 'radio'
  }
  // 匹配 压缩包
  const ziplist = ['zip', 'rar']
  result = ziplist.find(item => item === suffix)
  if (result) {
    return 'zip'
  }

以上就是需要通过文件名判断文件类型时,可封装执行的js封装体。
实际使用效果如下:

console.log(getFileType("复习资料.txt"))			//txt
console.log(getFileType("复.习资料.pdf"))		//pdf
console.log(getFileType("复习资.料.mp3"))		//radio
console.log(getFileType("复习.资料.rar"))		//zip
console.log(getFileType("复习.资料"))			//other
console.log(getFileType(""))					//false

如果有更漂亮的写法欢迎来讨论,让我们一起有条不紊的持续进步。
喜欢的话不妨点个小小的赞与关注,您的赞与关注将是我源源不断的前进动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值