2016-04-01 11 views
0

Ich habe ein Javascript-Array von Zeichenfolgen und möchten diejenigen, die Daten sind, die diesem Format DD/MM/YYYY folgen.Wie testen, ob ein JavaScript-Objekt ein Datum ist mit moment.js

Mit Moment tun Sie das überprüfen: Jedoch

moment("31/12/2015", "DD/MM/YYYY").isValid(); -> true

, sollten diese auch als gültige Daten, wenn sie nicht:

moment("1", "DD/MM/YYYY").isValid(); -> true 
moment("1/", "DD/MM/YYYY").isValid(); -> true 
moment("1/1", "DD/MM/YYYY").isValid(); -> true 

Jede Idee, wie ich eine erzwingen könnte strikte String-Validierung?

Antwort

0

Sie möchten den strikten Modus beim Parsen verwenden. Der strikte Modus bewirkt, dass Moment nur Eingaben abgleicht, die exakt mit der Formatzeichenfolge übereinstimmen. Übergeben Sie einfach wahr als dritter Parameter:

moment("1", "DD/MM/YYYY", true).isValid(); 
false 
moment("1/", "DD/MM/YYYY", true).isValid(); 
false 
moment("1/1", "DD/MM/YYYY", true).isValid(); 
false 

Beachten Sie, dass im Strict-Modus, die DD und MM-Token, Moment beginnt zweistellige Tage und Monate zu erwarten. Also:

moment("1/1/2016", "DD/MM/YYYY", true).isValid(); 
false 
moment("01/01/2016", "DD/MM/YYYY", true).isValid(); 
true 

Sie können zu den Token mit einem Buchstaben gehen. Dann wird entweder eine Arbeit:

moment("01/01/2016", "D/M/YYYY", true).isValid(); 
true 
moment("1/1/2016", "D/M/YYYY", true).isValid(); 
true 

Es stehen weitere Informationen über das wie und warum der Strict-Modus in der Parsing-Führer: http://momentjs.com/guides/#/parsing/strict-mode/

+0

Das ist, was ich brauchte, danke. – codependent

Verwandte Themen