正则小应用:批量重命名文件

2018-08-10 admin

最近接手了一个新项目,设计师给了很多图片,比如其中一个文件夹是:

因为名字是中文的,所以是不能直接扔到项目里的。

因此一个需求就冒了出来,如何批量修改文件名?

我最开始想到的是使用cmd,比如for + ren等。试了几下,最后没能满足我的需求。

其实,简单的shell命令,还可以百度下,更多的我就不懂了。

我的需求是什么呢?

【拔萝卜-1.png】=>【baluobo01.png】

后来突然想到,我为啥不用用node?

其实个人没有在项目里用它的经验。但百度一下相关API,尝试一下,没想到几分钟就搞定了!

代码如下(rename.js):

let fs = require('fs')
let files = fs.readdirSync('./')
files.forEach(v => {
	if (/(\d+\.jpg)/.test(v)) {
		fs.rename(v, 'baluobo' + RegExp.$1.padStart(6, '0'), () => {})
	}
})

下面是我录的效果:


最后看一下正则那块儿:

/(\d+\.jpg)/.test(v)

当 v 是 “拔萝卜-1.png” 时,正则里括号捕捉的,即RegExp.$1,是 “1.png”,后面再用 “0” 补齐成6个字符串。

代码相对,很简单,如果不清楚,欢迎看正则表达式括号的作用

正则又一次帮到了我。

本文完。

原文链接:https://zhuanlan.zhihu.com/p/41655899

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-37671.html

文章标题:正则小应用:批量重命名文件

相关文章
百度新功能【特效搜索】演示 惊呆了小伙伴
百度搜索最近又出新玩意新功能了,可能你还没有发现,名为【百度特效搜索】已经默默上线了,有什么效果呢? 在百度搜索中根据用户搜索的关键词来出发某些动作,例如笔者搜索“打雷”关键字,在搜索结果中你会听到有打雷声, 黑洞,闪烁、翻转、跳跃,打雷,...
2015-11-12
JavaScript正则进阶之路——活学妙用奇淫正则表达式
有些童鞋肯定有所疑惑,花了大量时间学习正则表达式,却发现没有用武之地,正则不就是验证个邮箱嘛,其他地方基本用不上,其实,大部分人都是这种感觉,所以有些人干脆不学,觉得又难又没多大用处。殊不知,想要成为编程大牛,正则表达式必须玩转,GitH...
2017-05-31
vue使用watch 观察路由变化,重新获取内容
问题背景: 点击用户头像 => 进入用户个人中心,在用户个人中心里点击其他用户的头像,我希望显示被点击用户的个人中心,但只看到了路由参数在发生变化,页面内容并没有更新。如图: 页面代码如下: <script> exp...
2017-03-13
性能与生态双突破 HTML5重现爆发曙光
走过早熟的WebAPP,也经历过概念性的“轻应用”,HTML5这个被视作移动互联网未来的技术标准,终于在2015年看到了爆发的曙光。1月 15日,搜狐发布基于HTML5的“手机搜狐网3.0,加上微信几天前开放HTML5接口,HTML5很可能...
2015-11-12
CIO最为关注的六大企业移动应用平台
2014年10月18日,由北大信息化与管理研究中心、北大CIO班教务办、大华南IT高管共赢圈联合主办,CIO时代网承办的2014“北大CIO中国行-深圳站”活动顺利举行。会上,来自各大企业的CIO、移动应用专家等140余人共聚一堂,共同探讨...
2015-11-12
AngularJS 文件上传控件 ng-file-upload详解
网上可以找到的 AngularJS 的文件上传控件有两个: angular-file-upload:https://github.com/nervgh/angular-file-upload ng-file-upload:https://g...
2017-03-10
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
本文实例讲述了JS常见创建类的方法。分享给大家供大家参考,具体如下: Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有Class。(不过,ES6引...
2017-04-05
jscript读写二进制文件的方法
本文实例讲述了jscript读写二进制文件的方法。分享给大家供大家参考。具体实现方法如下: var bin = new Array(256); for(var i=0;i<256;i++){ bin[i]=String.fromC...
2017-03-22
nodejs搭建本地服务器并访问文件的方法
安装node:https://nodejs.org/en/download/ 在本地建立目录:f:/nodetest,在该目录下新建index.html作为我们将要访问的内容。新建server.js作为node开启的入口: $ cd f:&...
2017-03-13
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
本文主要通过代码示例给大家介绍IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题;分步介绍,先给大家介绍IE7浏览器窗口大小改变事件执行多次bug,具体问题分析及解决方案请看下文。 var resizeTi...
2017-03-29
回到顶部