moment.js isValid function not working properly

JavascriptJqueryDateMomentjs

Javascript Problem Overview


I have this question... I haven't found anything similar and it also seems very strange that nobody had this problem validating time with moment.js.

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

Am I doing something wrong? Here is an example:

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

Javascript Solutions


Solution 1 - Javascript

In your question you write that moment('03:55jojojo', 'HH:mm',true).isValid(); returns true. This is incorrect. Please check your jsfiddle again.

From http://momentjs.com/docs/

> Moment's parser is very forgiving, and this can lead to undesired > behavior. As of version 2.3.0, you may specify a boolean for the last > argument to make Moment use strict parsing. Strict parsing requires > that the format and input match exactly.

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

You can use both language and strictness.

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

Solution 2 - Javascript

Sorry to necro this 5 year old question, but I indeed stumbled upon a case where monent is not working properly towards the documentation, using version 2.24.0.

Formats

In the picture we can see that for example H should only evaluate to 0 - 23, but if I use moment('01', 'H', true).isValid() I still get true.

Here is the jsfiddle: https://jsfiddle.net/wofgst5v/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMikel SanchezView Question on Stackoverflow
Solution 1 - JavascriptJan SommerView Answer on Stackoverflow
Solution 2 - JavascriptknnhcnView Answer on Stackoverflow