Momentjs说无效日期有效

时间:2018-03-30 17:21:30

标签: momentjs

我们有一个地址,根据momentjs报告为有效..有什么想法吗?

你可以看到这个小提琴中的行为

var wrong_date = "7840 W HICKS STREET";


document.write(moment(wrong_date, "YYYY-MM-DD HH:mm:ss").isValid()); //returns true

https://jsfiddle.net/jeffbeagley/2c9urj5v/1/

2 个答案:

答案 0 :(得分:1)

使用strick格式解析:

var wrong_date = "7840 W HICKS STREET";

document.write(moment(wrong_date, "YYYY-MM-DD HH:mm:ss", true).isValid());

注意第三个布尔参数设置为true。

这是格式上的一个严格匹配。

答案 1 :(得分:1)

  

Moment的解析器非常宽容,这可能会导致意外行为。从版本2.3.0开始,您可以为最后一个参数指定一个布尔值,以使Moment使用严格的解析。严格的解析要求格式和输入完全匹配,包括分隔符。

document.write(moment(wrong_date, "YYYY-MM-DD HH:mm:ss").isValid()); //returns true
document.write(moment(wrong_date, "YYYY-MM-DD HH:mm:ss", true).isValid()); //returns false

您可以同时使用区域设置和严格性。

moment('2012-10-14', 'YYYY-MM-DD', 'fr', true);