Ho un campo stringa che viene utilizzato per ottenere valori diversi. Alcuni dei valori ricevuti sono date. Ora ho bisogno di controllare se il valore ricevuto è data o no? La data di ricezione può essere di nuovo in diversi formati.Come convalidare se una stringa è una data valida in js
Ho provato Date.parse()
, funziona se il formato è dd-mm-yyyy hh:mm
, ma ho alcune date ricevute in modo simile (26/05/2015 06:20:57 +00:00
).
Come faccio a confrontare se la stringa è data valida o no?
Prova a guardare moment.js (http://momentjs.com/docs/) è una libreria di date piuttosto forte. Potresti provare a creare una data con qualsiasi valore, quindi verificare se è valida –
Questo può essere un duplicato, ma il duplicato collegato ha risposte per lo più scarse che si basano semplicemente su * Date.parse *, che è molto inaffidabile per formati casuali. – RobG
È fondamentale analizzare correttamente una stringa di data in cui è possibile indicare al parser in che formato si trova (o fornire un formato che ** si conosce ** analizzerà correttamente). Altrimenti, puoi semplicemente provare una sequenza di formati diversi e fermarti quando ne ottieni uno che "funziona". Dove l'anno è il primo, puoi essere ragionevolmente sicuro della sequenza ymd, ma dove l'anno è l'ultimo, la prevalenza della sequenza m/d/y illogica significa che non puoi dire con certezza se 04/05/2010 è il 4 maggio o 5 aprile – RobG