[javascript] moment.js isValid 함수가 제대로 작동하지 않습니다.

이 질문이 있습니다 … 비슷한 것을 찾지 못했고 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('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 년 된 질문을 necro 해 주셔서 죄송하지만 버전 2.24.0을 사용하여 monent가 문서에서 제대로 작동하지 않는 경우를 발견했습니다.

형식

그림에서 예를 들어로 H평가되어야한다는 것을 알 수 0 - 23있지만 사용하면 moment('01', 'H', true).isValid()여전히 true.

다음은 jsfiddle입니다 : https://jsfiddle.net/wofgst5v/


답변