gpt4 book ai didi

javascript - 正则表达式无法验证 28 到 31 之间的日期

转载 作者:行者123 更新时间:2023-11-28 18:26:42 25 4
gpt4 key购买 nike

我有这个正则表达式来验证dd/mm/yyyydd.mm.yyyydd-mm-yyyy: https://regex101.com/r/kO4rR8/1

这是为了验证hh:mm: https://regex101.com/r/oF6zB5/1

现在我尝试连接上述表达式来验证 dd/mm/yyyy hh:mm, dd.mm.yyyy hh:mm, 日-月-年 时:分 : https://regex101.com/r/rD9yM8/1

但我收到一个奇怪的错误...我无法验证从 28/mm/yyyy 00:00 到 31/mm/yyyy 00:00 的日期!

有人可以帮我找出问题出在哪里吗?

最佳答案

正则表达式不是日期验证的最佳选择。验证日期的一个非常好的方法是使用 moment.js ,他们对此给予了内置支持。

function valiDate(ds) {
let validDates = ["DD/MM/YYYY hh:mm", "DD.MM.YYYY hh:mm", "DD-MM-YYYY hh:mm"];
return validDates.some(d => moment(ds, d).isValid())
}

console.log(valiDate("15.02.1985"));
console.log(valiDate("29.02.1985"));
console.log(valiDate("29.02.1985 00:00"));

上面将验证有时间和没有时间的情况 - 如果您只传递一个日期 (1985 年 2 月 15 日),它也将正确验证。

DEMO

关于javascript - 正则表达式无法验证 28 到 31 之间的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38979976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com