我正在使用moment.js库来读取不同的日期格式,并批准它们为有效或无效。我发现它读取了一个字符串作为有效日期输入,该字符串为“ Ref Load v1”。当我分隔每个单词时,结果表明它接受“ v1”作为有效的日期格式并返回“ 0001-01-01T00:00:00.000”。我该如何解决这个问题?
这是我在命令行中的打印语句:
moment("1996-01-24T00:00:00.000")
true
moment("0001-01-01T00:00:00.000")
true
moment.invalid(/* Ref */)
false
moment.invalid(/* Load */)
false
moment("0001-01-01T00:00:00.000")
某些代码:
function isDate(string) {
//var moment = require('moment');
console.log(moment(string, ["MMMM DD, YYYY", "YYYY-MM-DD", "M/DD/YYYY",
"MM/DD/YY", "YYYY-MMM-DD",
"MMM-DD-YYYY", "DD-MMM-YYYY",
"YYYYMMDD", "DDMMYY", "YYYY.DDD"
]));
return (String(moment(string, ["MMMM DD, YYYY", "YYYY-MM-DD", "M/DD/YYYY",
"MM/DD/YY", "YYYY-MMM-DD",
"MMM-DD-YYYY", "DD-MMM-YYYY",
"YYYYMMDD", "DDMMYY", "YYYY.DDD"
])) !== "Invalid date");
}
//exports.isDate = isDate;
console.log(isDate('Jan 24 1996'));
console.log(isDate('Ref Load v1'));
console.log(isDate('Ref'));
console.log(isDate('Load'));
console.log(isDate('v1'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
第一个print语句的输出应该为true,其他所有结果都应该为false。