我有这个问题......我没有发现任何相似之处,似乎很奇怪没有人用moment.js验证时间这个问题。
moment('03:55', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm',true).isValid(); //true
我做错了吗? 这是一个例子:
答案 0 :(得分:161)
在你的问题中,你写的是moment('03:55jojojo', 'HH:mm',true).isValid();
返回true。这是不正确的。请再次检查你的jsfiddle。
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版本无法正常处理文档的情况。
在图片中我们可以看到,例如H
仅应评估为0 - 23
,但是如果我使用moment('01', 'H', true).isValid()
,我仍然会得到true
。
这是jsfiddle:https://jsfiddle.net/wofgst5v/