You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除mm/dd/yyyy格式日期中的前导零

如何去除mm/dd/yyyy格式日期中的前导零

嘿,我来帮你搞定这个问题!你之前用的正则/0*\//g没达到预期,是因为它会把所有的零和斜杠都替换掉,比如04/09会直接变成49,完全不符合咱们的需求。咱们换两种靠谱的方式来实现:


方法一:精准正则替换

用正则匹配仅出现在月份开头或日期开头的前导零,这样就不会误删其他位置的零(比如时间里的10:45的0就不会被改动)。

代码示例:

const dateString = "04/09/2024 10:45";
const cleanedDate = dateString.replace(/(?<=^|\/)0(?=\d)/g, '');
console.log(cleanedDate); // 输出:4/9/2024 10:45

给你拆解下这个正则的逻辑:

  • (?<=^|\/):正向回顾断言,确保要替换的0是在字符串开头(对应月份的位置)或者斜杠后面(对应日期的位置)
  • 0:就是咱们要移除的前导零
  • (?=\d):正向展望断言,确保这个0后面跟着一个数字,避免误删非前导零的情况(比如10/12/2024里的10就不会被改成1)

方法二:用Date对象处理(更稳妥)

如果担心正则的边缘情况,或者想顺便验证日期的有效性,可以用Date对象来拆解日期再重新拼接:

代码示例:

const dateString = "04/09/2024 10:45";
const date = new Date(dateString);

// 提取各部分,月份要加1(因为getMonth()返回0-11)
const month = date.getMonth() + 1;
const day = date.getDate();
const year = date.getFullYear();
// 保留原时间部分
const time = dateString.split(' ')[1];

const cleanedDate = `${month}/${day}/${year} ${time}`;
console.log(cleanedDate); // 输出:4/9/2024 10:45

这种方法的好处是:如果输入的是无效日期(比如02/30/2024),Date对象会自动修正为合理日期,同时完成格式化。

备注:内容来源于stack exchange,提问作者D. Fowler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 20:08:15