如何通过Javascript的Regex从指定格式日期字符串中提取日数字?
解决方案
匹配逻辑
你提供的日期字符串结构固定为星期, 英文月份 日, 年份 - 时间,我们通过捕获「英文月份后、逗号前的1~2位数字」即可拿到日的数值,匹配逻辑不会误命中年份、时间里的数字。
完整代码
function extractDate(str) { const matchRes = str.match(/[A-Za-z]+\s(\d{1,2}),/); return matchRes ? Number(matchRes[1]) : null; } // 测试效果 console.log(extractDate('Monday, November 13, 2008 - 3:12pm')); // 输出 13 console.log(extractDate('Friday, November 1, 2008 - 6:53pm')); // 输出 1
规则说明
正则/[A-Za-z]+\s(\d{1,2}),/各部分作用:
[A-Za-z]+:匹配前面的英文月份\s:匹配月份和日之间的空格(\d{1,2}):捕获组,对应1位或2位的日数字- 末尾的
,:匹配日后面紧跟的逗号,做边界校验避免误匹配
如果后续日期格式调整,对应修改正则的捕获规则即可。
内容的提问来源于stack exchange,提问作者KdGuy
相关产品推荐
相关产品推荐

