Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式can';t验证日期从28日到31日_Javascript_Regex_Validation_Date_Datetime - Fatal编程技术网

Javascript 正则表达式can';t验证日期从28日到31日

Javascript 正则表达式can';t验证日期从28日到31日,javascript,regex,validation,date,datetime,Javascript,Regex,Validation,Date,Datetime,我有这个正则表达式来验证dd/mm/yyyyy,dd.mm.yyyy,dd-mm-yyyyy: 这将验证hh:mm: 现在,我尝试连接上述表达式以验证dd/mm/yyyy hh:mm,dd.mm.yyyy hh:mm,dd-mm-yyyy hh:mm: 但我有一个奇怪的错误。。。我无法验证从28/mm/yyyy 00:00到31/mm/yyyy 00:00的日期 有人能帮我找出问题出在哪里吗?Regex不是日期验证的最佳选择。验证日期的一个很好的方法是使用,它们内置了对日期的支持 func

我有这个正则表达式来验证
dd/mm/yyyyy
dd.mm.yyyy
dd-mm-yyyyy

这将验证
hh:mm

现在,我尝试连接上述表达式以验证
dd/mm/yyyy hh:mm
dd.mm.yyyy hh:mm
dd-mm-yyyy hh:mm

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


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

Regex不是日期验证的最佳选择。验证日期的一个很好的方法是使用,它们内置了对日期的支持

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日),它也将正确验证


正则表达式不是日期验证的最佳选择。验证日期的一个很好的方法是使用,它们内置了对日期的支持

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日),它也将正确验证


是否应
2016年2月31日00:00
为有效日期?Mm。。。不它不应该是一个有效的日期;事实上,如果您在此处尝试
2016年2月31日
:它没有验证,我希望与
2016年2月31日00:00
也有相同的结果。中的regex不正确,因为它不接受2016年2月29日为有效。而且正则表达式已经太复杂了;你真的不想给它添加更多的逻辑。应该
31/02/2016 00:00
是一个有效的日期吗?嗯。。。不它不应该是一个有效的日期;事实上,如果您在此处尝试
2016年2月31日
:它没有验证,我希望与
2016年2月31日00:00
也有相同的结果。中的regex不正确,因为它不接受2016年2月29日为有效。而且正则表达式已经太复杂了;你真的不想给它添加更多的逻辑。