moment.js isValid函数无法正常工作

时间:2013-11-14 13:29:28

标签: javascript jquery date momentjs

我有这个问题......我没有发现任何相似之处,似乎很奇怪没有人用moment.js验证时间这个问题。

moment('03:55', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm',true).isValid(); //true

我做错了吗? 这是一个例子:

http://jsfiddle.net/vCGAp/145/

2 个答案:

答案 0 :(得分:161)

在你的问题中,你写的是moment('03:55jojojo', 'HH:mm',true).isValid();返回true。这是不正确的。请再次检查你的jsfiddle。

来自http://momentjs.com/docs/

  

Moment的解析器非常宽容,这可能导致不受欢迎   行为。从版本2.3.0开始,您可以为最后一个指定布尔值   使Moment使用严格解析的参数。严格的解析需要   格式和输入完全匹配。

moment('It is 2012-05-25', 'YYYY-MM-DD').isValid();        // true
moment('It is 2012-05-25', 'YYYY-MM-DD', true).isValid();  // false
moment('2012-05-25', 'YYYY-MM-DD', true).isValid();        // true

您可以同时使用语言和严格程度。

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

答案 1 :(得分:0)

很抱歉无法回答这个已有5年历史的问题,但是我确实偶然发现了monent使用2.24.0版本无法正常处理文档的情况。

Formats

在图片中我们可以看到,例如H仅应评估为0 - 23,但是如果我使用moment('01', 'H', true).isValid(),我仍然会得到true

这是jsfiddle:https://jsfiddle.net/wofgst5v/