1. ホーム
  2. javascript

[解決済み] moment.js の isValid 関数が正しく動作しない。

2023-07-01 08:43:22

質問

私はこの質問があります... 私は同様のものを見つけていないし、誰もmoment.jsで時間を検証するこの問題を持っていなかったことは非常に奇妙に思える。

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/

どのように解決するのですか?

あなたの質問では、次のように書かれています。 moment('03:55jojojo', 'HH:mm',true).isValid(); は真を返すと書いています。これは間違っています。もう一度jsfiddleを確認してみてください。

から http://momentjs.com/docs/

<ブロッククオート

Momentのパーサーは非常に寛容であり、これが望ましくない動作につながることがあります。 動作につながる可能性があります。バージョン2.3.0では、最後の引数にブール値を指定することで、Momentが厳密なパースを行うようにすることができます。 引数にブール値を指定することで、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);