web-dev-qa-db-fra.com

moment.js La fonction isValid ne fonctionne pas correctement

J'ai cette question ... Je n'ai rien trouvé de semblable et il semble également très étrange que personne n'ait eu ce problème pour valider l'heure avec moment.js.

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

Est-ce que je fais quelque chose de mal? Voici un exemple:

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

70
Mikel Sanchez

Dans votre question, vous écrivez que moment('03:55jojojo', 'HH:mm',true).isValid(); renvoie vrai. Ceci est une erreur. S'il vous plaît vérifier votre jsfiddle à nouveau.

De http://momentjs.com/docs/

L'analyseur de Moment est très indulgent et peut conduire à un comportement indésirable. A partir de la version 2.3.0, vous pouvez spécifier un booléen pour le dernier argument afin que Moment utilise l'analyse stricte. Une analyse stricte nécessite que le format et l’entrée correspondent exactement.

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

Vous pouvez utiliser à la fois la langue et la rigueur.

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