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

如何用JavaScript正则将parsehub提取的日期转为dd/mm/yyyy格式?

用JavaScript将thursday 22 december 2022转换为dd/mm/yyyy格式

可以实现,但单纯依赖正则无法完成月份名称到数字的转换,需要结合正则提取关键信息+月份映射表来完成。以下是具体实现方案:

实现代码

function convertToDDMMYYYY(inputDate) {
    // 建立英文月份到两位数字的映射
    const monthMapping = {
        january: '01',
        february: '02',
        march: '03',
        april: '04',
        may: '05',
        june: '06',
        july: '07',
        august: '08',
        september: '09',
        october: '10',
        november: '11',
        december: '12'
    };

    // 正则表达式:忽略星期部分,捕获日、月份名称、年份
    const dateRegex = /^\w+\s+(\d{1,2})\s+(\w+)\s+(\d{4})$/i;
    const matchResult = inputDate.match(dateRegex);

    if (!matchResult) {
        return '无效的日期格式'; // 格式不匹配时返回提示或null
    }

    // 提取并格式化各部分
    const day = matchResult[1].padStart(2, '0'); // 补零确保两位数字
    const month = monthMapping[matchResult[2].toLowerCase()];
    const year = matchResult[3];

    return `${day}/${month}/${year}`;
}

// 测试示例
console.log(convertToDDMMYYYY('thursday 22 december 2022')); // 输出: "22/12/2022"
console.log(convertToDDMMYYYY('monday 3 march 2021')); // 输出: "03/03/2021"

关键说明

  1. 正则的作用:dateRegex用于从输入字符串中提取出日、月份名称和年份,忽略开头的星期部分。i标志确保匹配时不区分月份名称的大小写(比如December或december都能识别)。
  2. 月份映射:由于正则无法将december这类语义化名称直接转换为12,需要通过预定义的映射表完成转换。
  3. 日期补零:使用padStart(2, '0')将1位的日期(如5)转换为两位数字(如05),符合dd/mm/yyyy的格式要求。

内容的提问来源于stack exchange,提问作者Danny Geurts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:15:14