2013-11-14 17 views
63

Bu soruyu anladım ... Benzer bir şey bulamadım ve aynı zamanda hiç kimsenin moment.js ile zamanın geçerliliğini kontrol etmediği çok garip görünüyor.moment.js isValid işlevi düzgün çalışmıyor

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

Yanlış bir şey yapıyorum? Bunu moment('03:55jojojo', 'HH:mm',true).isValid(); döner doğru yazmak Sorunuza olarak

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

+3

Sadece onlar açıkça geçmek biçimi test durumda olduğunu test ... ama hiçbir onay için var olduğunu tahmin edebilirsiniz "değer biçimi olarak aynı uzunlukta mi?" ... Bir göndermeyi deneyin için öneririm hata raporu to moment.js – scunliffe

+0

... neden ilk etapta fazladan karakterler var? Bu tarihe karşı daha uzun tarih dizgileri doğru doğru mu? – Mathletics

+0

Ekstra karakterlerle ne demek istiyorsun? –

cevap

140

: İşte bir örnek. Bu yanlış. Lütfen jsfiddle'ınızı tekrar kontrol edin. http://momentjs.com/docs/

Moment en ayrıştırıcı itibaren

çok bağışlayıcı ve bu istenmeyen davranışa yol açabilir. 2.3.0 sürümünden itibaren, Moment'i kesin ayrıştırmayı kullanmak için son argümanı için bir boolean belirtebilirsiniz. Kesin ayrıştırma, biçimin ve girdinin tam olarak eşleştiğini gerektirir.

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 

Sen dili ve katılığına her ikisini kullanabilirsiniz.

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

gerçek (endeks): 26 gerçek (endeks): 27 gerçek (endeks): 29 Bu konsol ölçüm değeridir: S –

+0

Eğer jsfiddle işaretlerseniz, bir de doğrudur geçen DEĞİL fark edeceksiniz üçüncü argüman her yerde, ama sizin sorunuzda 'moment' ('03: 55jojojo ',' HH: mm ', true) .isValid(); 'döndürür. Lütfen tarayıcınızda bu kodu çalıştırın - çıktı yanlıştır. –

+1

Dostum, çok teşekkürler, doğru olan bu üçüncü parametre, hayatımı birçok kez kurtardı, sadece bu cevaba geri dönmeyi sürdürdüğümden beri söylemek istedim. – Kadaj