js - 文件名

js - 文件名

修改文件名

notice

  1. 只修改文件名称
  2. 保留文件格式后缀

获取文件名称和格式后缀

优化版

/**
 * @method getFileNameandExt
 * @description 获取文件名称和格式后缀
 * @param Sting fileNameString 文件全名,带后缀的文件名
 * @param RegExp extsReg 指定文件类型正则 默认:/\.jpe?g$|\.mp4$|\.mp3$/
 * @return  Object {ext, filename}
 */
function getFileNameandExt(fileNameString = '', extsReg = /\.jpe?g$|\.mp4$|\.mp3$/) {
  let matchList = fileNameString.match(extsReg),
    ext = '',
    filename = ''
  if (!matchList) {
    console.error('非指定文件类型文件' + fileNameString)
    return {
      ext,
      filename
    }
  }
  ext = matchList[0]
  filename = fileNameString.slice(0, matchList['index']) // 截取文件名称
  return { ext, filename }
}

// example
getFileNameandExt('20220816_164715') // 非指定文件类型文 20220816_164715 {ext: '', filename: ''}
getFileNameandExt('20220816_164715.mp4') 
// {ext: '.mp4', filename: '20220816_164715'}
getFileNameandExt('20220816_164715.mp4.mp4.jpg.jpeg') 
// {ext: '.jpeg', filename: '20220816_164715.mp4.mp4.jpg'} 

优化内容

'20220816_164715.mp4.mp4.jpg.jpeg'.match(/\.jpe?g|\.mp4/ig) // ['.mp4', '.mp4', '.jpg', '.jpeg']
// 优化
'20220816_164715.mp4.mp4.jpg.jpeg'.match(/\.jpe?g$|\.mp4$/ig) // ['.jpeg']
'20220816_164715.mp4.mp4.jpg.jpeg'.match(/\.jpe?g$|\.mp4$/)
// ['.jpeg', index: 27, input: '20220816_164715.mp4.mp4.jpg.jpeg', groups: undefined]
// 0: ".jpeg"
// groups: undefined
// index: 27
// input: "20220816_164715.mp4.mp4.jpg.jpeg"
// length: 1
// [[Prototype]]: Array(0)

原版

/**
 * @method getFileNameandExt
 * @description 获取文件名称和格式后缀
 * @param Sting fileNameString 文件全名,带后缀的文件名
 * @param RegExp extsReg 指定文件类型正则 默认:/\.jpe?g|\.mp4/ig
 * @return  Object {ext, filename}
 */
function getFileNameandExt(fileNameString = '', extsReg = /\.jpe?g|\.mp4/gi) {
  let matchList = fileNameString.match(extsReg)
  if (!matchList || matchList.length < 1) throw new Error('非指定文件类型文件')
  let ext = matchList.reverse()[0], // 取最后一个匹配值,为文件后缀
    filename = fileNameString.slice(0, fileNameString.lastIndexOf(ext)) // 截取文件名称
  return { ext, filename }
}

// example
getFileNameandExt('20220816_164715') // Uncaught Error: 非指定文件类型文件
getFileNameandExt('20220816_164715.mp4') 
// {ext: '.mp4', filename: '20220816_164715'}
getFileNameandExt('20220816_164715.mp4.mp4.jpg.jpeg') 
// {ext: '.jpeg', filename: '20220816_164715.mp4.mp4.jpg'} 

posted @ 2022-08-17 11:55  zc-lee  阅读(82)  评论(0编辑  收藏  举报