如何从大型日期数组中提取包含'2017-01'的日期字符串?
筛选日期数组中2017年1月的所有日期
下面给你几种实用的实现方案,包括你尝试的正则表达式方法:
方案1:正则表达式匹配
利用正则精准匹配以2017-01-开头的日期字符串,结合数组filter方法筛选:
const datesArray = [/* 你的日期数组 */]; const jan2017Dates = datesArray.filter(date => /^2017-01-/.test(date));
- 正则
^2017-01-的说明:^:锚定字符串开头,确保只有从开头就匹配2017-01-的日期才会被选中2017-01-:精确匹配目标年月的前缀
方案2:字符串前缀判断(更高效直观)
如果日期格式固定为YYYY-MM-DD,直接用startsWith()方法更简洁,性能也更好:
const datesArray = [/* 你的日期数组 */]; const jan2017Dates = datesArray.filter(date => date.startsWith('2017-01'));
这种方法无需正则,对固定格式的日期来说可读性更强,也省去了正则的额外解析开销。
方案3:分割日期字符串验证
通过分割日期字符串提取年月部分,再进行条件判断,灵活性更高:
const datesArray = [/* 你的日期数组 */]; const jan2017Dates = datesArray.filter(date => { const [year, month] = date.split('-'); return year === '2017' && month === '01'; });
后续要筛选其他年月时,只需修改判断条件即可。
内容的提问来源于stack exchange,提问作者Nate Walchenbach
相关产品推荐
相关产品推荐

