首页 > 编程语言 >javascript匹配文件名相同然后在后面增加数字的正则表达式

javascript匹配文件名相同然后在后面增加数字的正则表达式

时间:2024-03-08 09:44:53浏览次数:22  
标签:count fullFileName name 文件名 正则表达式 javascript fileName let

在一个文件列表中

const renameFileName = (fileName: string) => {
  console.log("origin file name ", fileName)
  let fileList = getFileList() // 获取文件列表,包含了文件名
  let count = -1 // 记录当前包含了几个文件名

  fileList.forEach(value => {
    let fullFileName = value.name ? value.name : value.fileName
    // 首先要拿到去掉后缀名的文件名称
    let name = fullFileName.indexOf(".") > 0 ? fullFileName.split(".")[0] : fullFileName
    console.log("file list name ", name)
    if (name === fileName) {
      count++
    } else {
      // 创建正则表达式
      let pureName = name.split(".")[0]
      // 将去除后缀名的文件名组成一个正则表达式用来匹配输入的文件名是否包含在其中
      // 这里\\((\\d+)\\)最里面表示将数字组成一个组合,外面的\\(\\)则是表示要匹配()
      const nameRegex = new RegExp(`^${fileName}\\((\\d+)\\)$`)
      let matchResult = nameRegex.exec(pureName)
      if (matchResult) {
        // 文件名包含了数字,将同名文件并且已经包含了(1)这种数字的中间数字取出来
        let fileCount = parseInt(matchResult[1])
        if (fileCount > count) {
          count = fileCount
        }
      }
    }
  })
  let rename = fileName
  if (count >= 0) {
  // 重新将文件和重名数字命名组合
    rename = `${fileName}(${++count})`
  }
  return rename
}

标签:count,fullFileName,name,文件名,正则表达式,javascript,fileName,let
From: https://www.cnblogs.com/xxss0903/p/18060331

相关文章

  • Python正则表达式的语句具体的实用例子_2
    importres="""<divclass='jay'><spanid='1'>周杰伦</span></div><divclass='augus'><spanid='2'>马宁</span></div><divclass='tom'><s......
  • Python正则表达式的具体应用例子及注释
    lst=re.findall(r'\d+',"我的电话号是:10086,我女朋友的电话是:10010")print(lst)#finditer:匹配字符串中所有的内容【返回的是迭代器】,从迭代中拿内容,用“.group”num=re.finditer(r"\d+","我的电话号是:10086,我女朋友的电话是:10010")foriinnum:print(i)""......
  • 20240307正则表达式对常见字段的校验
    验证固话号码//表示以0开头,后跟2到3位数字,然后是-,最后是7到8位数字。publicstaticbooleancheckPhoneNumber(StringphoneNumber){if(StringUtils.isEmpty(phoneNumber)){returnfalse;}Patternpattern=Pattern.co......
  • Blazor笔记-JavaScript Interop(JS互调用)
    更新记录注意:非教程。纯笔记,日常查询用的。需要教程的小伙伴找几本书看看即可哈哈,有Vue基础的话非常快,概念都是通的。非工作需要不建议深入学习Blazor,深入Vue吧,用的多,哈哈。完整目录地址:https://www.cnblogs.com/cqpanda/p/17596348.html点击查看2024年3月7日发布。2023......
  • Q:oracle通过正则表达式替换对应值
    示例视图把原ip地址替换成192.167.41.60:8080SELECTreplace(jg.yxwjjdz,regexp_substr(jg.yxwjjdz,'([0-9]{1,3}.){3}[0-9]{1,3}.{0,10}[0-9]/'),'192.167.41.60:8080/'函数用法regexp_like(search_string,pattern[,match_option])参数说明:search_string:是搜索值patter......
  • JavaScript 最新动态:2024 年新功能
    前言随着Web技术的日新月异,JavaScript也在不断地吸收新的特性和技术,以满足日益复杂和多样化的开发需求。在2024年,JavaScript迎来了一系列令人瞩目的新功能,这些功能不仅提升了开发者的效率,也极大地丰富了Web应用的表现力和交互性。在接下来的内容中,我们将逐一介绍这些新......
  • javascript如何循环遍历对象
    在JavaScript中有多种循环遍历对象的方法,下面本篇文章就来给大家介绍一下使用JavaScript循环遍历对象的方法,希望对大家有所帮助。1、使用for循环for循环是js中最常用的一个循环工具,经常用于数组的循环遍历。letarr=[1,2,3];for(leti=0;i<arr.length;i++){co......
  • JavaScript逆向之RSA算法
    RSA算法简介RSA算法属于非对称加密,加密的密钥称为公钥,解密的密钥称为私钥,公钥和私钥不是同一个。公钥是可以放在外面的,给谁都可以;但是私钥不可以放在外面,只能服务器自己保留,如果私钥泄露了,数据安全将有极大的风险。RSA的公钥和私钥是成对的,不能拆开。python中的RSA在python中......
  • (21)Lazarus之FilterComboBox1过滤ShellListView1的文件名
    FilterComboBox1只过滤当前目录下的文件名,不过滤目录名,也不过滤子目录名拖一个FilterComboBox1,ShellListView1到界面上1]将FilterComboBox1的ShellListView设置为ShellListView12]添加过滤文件类型 3]还须设置ShellListView1的根目录Root ......
  • js 数组筛选方法使用整理_JavaScript常用数组元素搜索或过滤
    一、常用方案介绍:如果你想找到在符合特定条件的阵列中的所有项目,使用filter。如果你想检查是否至少有一个项目符合特定的条件,请使用find。如果你想检查一个数组包含一个特定的值,请使用includes。如果要在数组中查找特定项目的索引,请使用indexOf 二、js数组筛选方法......