查漏补缺——说说time.replace(new RegExp(/-/gm), '/')
问题
如题所示
答案
相关源码:
if ((/^[0-9]+$/.test(time))) { // support "1548221490638" time = parseInt(time) } else { time = time.replace(new RegExp(/-/gm), '/') }
这里有一行代码:
time = time.replace(new RegExp(/-/gm), '/')
根据上面,我们可以知道这行代码是在首先使用一个正则对象进行匹配,然后使用字符串/
替换掉所匹配到的内容,但是这个正则对象在匹配什么呢?
根据上面,我们知道gm的意思是全局多行匹配,那么会不会是匹配-
这个符号呢?那么我们通过一个实验验证一下我们的想法对不对:
var str1 = '黄子涵-黄春钦'; console.log("对str1进行正则匹配且替换:"); console.log(str1.replace(new RegExp(/-/gm), '/')); console.log(""); var str2 = '2022-07-02'; console.log("对str2进行正则匹配且替换:"); console.log(str2.replace(new RegExp(/-/gm), '/')); console.log();
[Running] node "e:\HMV\JavaScript\JavaScript.js" 对str1进行正则匹配且替换: 黄子涵/黄春钦 对str1进行正则匹配且替换: 2022/07/02 [Done] exited with code=0 in 0.251 seconds
实验证明,我们的想法是正确的,这里应该将日期字符串中间的短横杠替换成斜杠。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?