我正在尝试检查字符串是否为有效的日期字符串。 但我无法在字符串表示中验证星期几。
这两个命令显示类似的结果:
moment("Tuesday 19/09/2017", "dddd D/M/YYYY", true).isValid() //true
moment("Tuesday 20/09/2017", "dddd D/M/YYYY", true).isValid() //true
我该如何检查?我不能将这个字符串分成两部分,因为我不太了解格式。
答案 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>