首页 > 其他分享 >js - 文件名

js - 文件名

时间:2022-08-17 12:20:03浏览次数:48  
标签:文件名 mp4 jpeg js ext 20220816 164715 filename

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'} 

标签:文件名,mp4,jpeg,js,ext,20220816,164715,filename
From: https://www.cnblogs.com/zc-lee/p/16594623.html

相关文章

  • 两个jsp之间传递参数
    以下为请求端,用form表单默认传递  接收端用request.getParameter("name")来接收 ......
  • node.js安装过程中遇到的坑
    node.js的安装noide.js的完全卸载node.js的安装一些报错的解决1.node.js的完全卸载第一步:打开系统自带的应用管理器卸载ndoe.js。第二步:删除和node.js相关......
  • js中的双问号和“?.“的含义和使用
    总结: this.approveRecords[2].files[0].id会报错因为files:[],所以写成this.approveRecords[2]?.files[0]?.id让它链不下去就好了??表示:只有左侧的值为null或undefin......
  • java之fastjson序列化和反序列化
    全解史上最快的JSON解析库-alibabaFastjson:https://zhuanlan.zhihu.com/p/72495484Fastjson:https://blog.csdn.net/rustwei/article/details/121162202......
  • ExtJS - UI组件 - MessageBox
    更新记录转载请注明出处:https://www.cnblogs.com/cqpanda/p/16587505.html2022年8月17日发布。2022年8月13日从笔记迁移到博客。ExtJS教程汇总:https://www.cnblog......
  • request.js?b775:101 Uncaught (in promise) Error: Failed to convert value of type
    request.js?b775:101Uncaught(inpromise)Error:Failedtoconvertvalueoftype'java.lang.String'torequiredtype'java.lang.Long';nestedexceptionisjava......
  • 多个Node.js版本之间切换
    本篇文章会讲windows和Mac系统下实现多个node.js版本之间的切换。1.windows下采用nvm(nvm-window)2.Mac下采用nvm和n注:window和mac下的nvm地址是不一样的一、windows系......
  • React报错之Type '() => JSX.Element[]' is not assignable to type FunctionComponen
    正文从这开始~总览当我们尝试从函数组件中返回元素组成的数组时,会产生"Type'()=>JSX.Element[]'isnotassignabletotypeFunctionComponent"错误。为了解决该错误......
  • js倒计时函数
    letcounteDate=newDate("jul1,202700:00:00").getTime();functioncountDown(){letnow=newDate().getTime()gap=......
  • JSTL_概念和JSTL_常用标签
    JSTL_概念概念:JavaServerPagesTagLibraryJSP标准标签库是由Apache组织提供的开源的免费的jsp标签<标签>作用:用于简化和替换jsp页面上的java代码使用步骤导入j......