在解析验证期间,Moment.js忽略星期几

时间:2017-09-11 22:28:41

标签: javascript momentjs

我正在尝试检查字符串是否为有效的日期字符串。 但我无法在字符串表示中验证星期几。

这两个命令显示类似的结果:

moment("Tuesday 19/09/2017", "dddd D/M/YYYY", true).isValid()  //true
moment("Tuesday 20/09/2017", "dddd D/M/YYYY", true).isValid()  //true

我该如何检查?我不能将这个字符串分成两部分,因为我不太了解格式。

1 个答案:

答案 0 :(得分:1)

看来isValid只检查日期部分。

如果你想检查整个字符串,也许有一个想法是解析它,如果在重新格式化之后结果是相同的那么它是有效的。

例如

function valid(dt,fmt) {
  return moment(dt, fmt).format(fmt) === dt;
}

let fmt = 'dddd D/M/YYYY';
let dates = [
  "Tuesday 19/9/2017",
  "Tuesday 20/9/2017"
];

dates.forEach((dt) => {
  console.log(dt + ' ' + valid(dt, fmt));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>