2013-11-14 2 views
63

이 질문이 있습니다 ... 비슷한 점을 발견하지 못했으며, 아무도이 문제를 순간적으로 확인하지 못하는 것이 매우 이상하게 보입니다.moment.js isValid 함수가 제대로 작동하지 않습니다.

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

내가 잘못하고 있나? 당신이 moment('03:55jojojo', 'HH:mm',true).isValid(); true를 반환 쓰기 질문에서

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

+3

난 단지 그들이 명시 적으로 전달하는 형식을 테스트하는지 테스트 ...하지만 검사가이 없다는 것을 추측 할 수있다 "값은 형식과 같은 길이이다?"... 나는를 제출 시도하는 게 좋을 것 bug report to moment.js – scunliffe

+0

... 왜 처음에는 그 여분의 캐릭터가 있습니까? 해당 형식에 대해 더 긴 날짜 문자열의 유효성을 올바르게 검사합니까? – Mathletics

+0

추가 문자가 있다면 무엇을 의미합니까? –

답변

140

: 다음은 예입니다. 이것은 잘못되었습니다. jsfiddle을 다시 확인하십시오. http://momentjs.com/docs/

순간의 파서에서

은 매우 관대하고,이 원하지 않는 동작이 발생할 수 있습니다. 버전 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); 
+1

true (색인) : 26 true (색인) : 27 true (색인) : 29 이것은 콘솔 로그 출력입니다. S –

+0

jsfiddle을 확인하면 true를 전달하지 않습니다. 세 번째 인수 어디서나,하지만 귀하의 질문에 '순간 ('03 : 55jojojo,'HH : mm ', true) .isValid();'는 true를 반환합니다. 브라우저에서 해당 코드를 실행하십시오. 출력은 false입니다. –

+1

남자, 정말 고마워, 내 인생을 여러 번 저장, 사실이 세 번째 매개 변수는, 그냥 이후로 항상이 답변을 다시오고 말하고 싶었어요. – Kadaj

관련 문제