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 @   zc-lee  阅读(91)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示