我有一个问题...我没有找到任何类似的东西,而且似乎很奇怪,没有人在使用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);
moment('03:55jojojo', 'HH:mm',true).isValid();
返回 true。请在浏览器中运行这段代码 - 输出结果为 false。 - Jan Sommer很抱歉打扰这个五年前的问题,但我确实遇到了一个情况,moment在文档中没有正常工作,使用版本2.24.0。
从图片中我们可以看到例如H
应该只评估为0 - 23
,但是如果我使用moment('01','H',true).isValid()
,我仍然得到true
。
这里是jsfiddle:https://jsfiddle.net/wofgst5v/