我有这个问题......我没有发现任何类似的东西,而且似乎很奇怪没有人在使用 moment.js 验证时间时遇到这个问题。
moment('03:55', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm',true).isValid(); //true
难道我做错了什么?这是一个例子:
我有这个问题......我没有发现任何类似的东西,而且似乎很奇怪没有人在使用 moment.js 验证时间时遇到这个问题。
moment('03:55', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm').isValid(); //true
moment('03:55jojojo', 'HH:mm',true).isValid(); //true
难道我做错了什么?这是一个例子:
在您的问题中,您写的是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);
很抱歉解决了这个 5 年前的问题,但我确实偶然发现了 monent 使用 2.24.0 版本无法正常处理文档的情况。
在图片中,我们可以看到 exampleH
应该只评估为0 - 23
,但如果我使用moment('01', 'H', true).isValid()
我仍然得到true
。
这是jsfiddle:https ://jsfiddle.net/wofgst5v/