`isISO8601` 嚴格模式永远不会验证周日期

作者: uhop创建于 2026年8月23日更新于 2026年8月23日
标签🐛 bug

描述错误

使用 strict: true 时,isValidDate 会提取月份和日期,如下所示:

javascript
const match = str.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number);

对于如 2021-W53-1 的周日期,W 不是数字,因此 (\d{0,2})(\d*) 都匹配空字符串。Number('')0,因此第 31 行的 if (month && day) 判断为假,函数返回 true,而不进行任何检查。

内容来源: validatorjs/validator.js