js - 文件名
修改文件名
notice
- 只修改文件名称
- 保留文件格式后缀
获取文件名称和格式后缀
优化版
/**
* @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'}
标签:文件名,mp4,jpeg,js,ext,20220816,164715,filename
From: https://www.cnblogs.com/zc-lee/p/16594623.html