Moment.js库不起作用,将无效输入读为有效

时间:2019-08-13 18:02:09

标签: momentjs

我正在使用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。

0 个答案:

没有答案