Js 是有效的函数不能正常工作

我有这个问题... 我没有发现任何类似的东西,而且似乎很奇怪,没有人有这样的问题,用 moment 来验证时间。

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/

107997 次浏览

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

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

Moment 的解析器非常宽容,这可能导致不希望出现的结果 从版本2.3.0开始,您可以为最后一个命令指定一个布尔值 使用严格解析的参数 格式和输入完全匹配。

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年前的问题,但是我确实偶然发现了一个使用2.24.0版本的 monent 在文档方面不能正常工作的情况。

Formats

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

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