2017-09-11 1 views
1

J'essaie de vérifier que la chaîne est une chaîne de date valide. Mais je ne peux pas valider le jour de la semaine dans la représentation de chaîne.Moment.js ignore le jour de la semaine pendant la validation de l'analyse

Ces deux commandes affichent des résultats similaires:

moment("Tuesday 19/09/2017", "dddd D/M/YYYY", true).isValid() //true 
moment("Tuesday 20/09/2017", "dddd D/M/YYYY", true).isValid() //true 

Comment puis-je vérifier? Je ne peux pas diviser cette chaîne en deux parties, car je ne connais pas vraiment le format.

+0

Qu'est-ce que « je ne peux pas diviser cette chaîne en deux parties, parce que je ne sais pas vraiment le format. » signifier. Quel format ne connaissez-vous pas? Qu'est-ce que tu essayes de dire? – jwpfox

Répondre

1

Apparemment isValid ne vérifie que la partie date.

Si vous voulez vérifier toute la chaîne, peut-être qu'une idée est de l'analyser, si le résultat est le même après reformation, alors c'est valide.

par ex.

function valid(dt,fmt) { 
 
    return moment(dt, fmt).format(fmt) === dt; 
 
} 
 

 
let fmt = 'dddd D/M/YYYY'; 
 
let dates = [ 
 
    "Tuesday 19/9/2017", 
 
    "Tuesday 20/9/2017" 
 
]; 
 

 
dates.forEach((dt) => { 
 
    console.log(dt + ' ' + valid(dt, fmt)); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>