2017-06-16 1 views
0

Ich habe gesehen, dass Sie eine „.isValid()“ Funktion überprüfen können, ob eine bestimmte Zeichenfolge in einem Datumsformat ist:Validate Datum FORMAT (nicht Datum String) mit MomentJS?

moment('2007-05-05', 'YYYY-MM-DD', true).isValid() 

Aber ist es eine Möglichkeit, dass dasFormat zu bestätigen ist richtig? Zum Beispiel:

'YYYY-MM-DD' sollten true zurück, aber

'YYYY-MM-DDsadsadl' sollte false, da die Zeichen am Ende der Zeichenfolge ist keine gültigen Datetime-Zeichen zurück.

Wir arbeiten an einem Tool, mit dem ein Benutzer ein vorhandenes Datumsformat eingeben kann, und dann eine zweite Eingabe, um das gewünschte Format einzugeben. Wir müssen jedoch überprüfen, ob die Zeichenfolge ordnungsgemäß analysiert und konvertiert werden kann Ich gebe kein bestimmtes Datum ein.

Die Anwendung muss alle möglichen Datumsformate akzeptieren und alle.

Antwort

1

Verwenden Sie die folgende Funktion, um Ihr Format zu überprüfen.

validFormat = function(inputFormat){ 
    var validation = moment(moment('2017-06-17').format(inputFormat)).inspect(); 
    if(validation.indexOf('invalid') < 0) 
    return true; 
    else 
    return false; 
} 

Verbringen Sie etwas Zeit, um dies zu verstehen. Dies führt einfach eine umgekehrte Überprüfung mit inspect() durch. Das Datum 2017-06-17 kann durch ein beliebiges gültiges Datum ersetzt werden. Diese Moment Js Docs wird Ihnen helfen, die gültigen Formate zu identifizieren.

einfach einen Aufruf dieser Funktion machen als

validFormat('YYYY MM DD') 
+0

Vielen Dank für Ihre Hilfe! Dies scheint den Trick zu machen. Ich werde sicher Dinge nachlesen, ich möchte auf jeden Fall sicherstellen, dass ich verstehe, was diese Funktion macht. – ryanpm40