Salve quale pattern mi consigliate per validare una data nel formato italiano
gg/mm/aaaa (20/12/2006)
Ringrazio anticipatamente
Salve quale pattern mi consigliate per validare una data nel formato italiano
gg/mm/aaaa (20/12/2006)
Ringrazio anticipatamente
codice://------------------------------------------------ //valida la stringa dateStr //------------------------------------------------ function IsDate(dateStr) { datePat = /^((3[01]|[12]\d|0?[1-9])\/(0?[13578]|10|12)\/(\d\d)?\d\d|(30|[12]\d|0?[1-9])\/(0?[469]|11)\/(\d\d)?\d\d|(2[0-8]|[01]\d|0?[1-9])\/(0?2)\/(\d\d)?\d\d|29\/(0?2)\/(1200|1600|2000|2400|2800|00)|29\/(0?2)\/(\d\d)?(0[48]|[2468][048]|[13579][26]))$/; var matchArray = dateStr.match(datePat); return !(matchArray == null) }
Pietro
Grazie
Per quanto riguarda la validazione sintattica:
/(\d{2}[\/\.]){2}\d{4}/
Oppure, piu` selettiva:
/([0-2]\d)|(3[01])[\/\.](0[1-9])|(1[0-2])[\/\.](19)|(20)\d{2}/
Invece per una validazione semantica, puoi trasformare la stringa in oggetto Date() e quindi controllare se i singoli pezzi coincidono:Nota: nessuno di questi metodi ti puo` controlalre di non aver confuso il 3 febbraio con il 2 marzo e sim.codice:function checkdate(origstr) { if(!origstr.match(/(\d{2}[\/\.]){2}\d{4}/) { alert("formato non corretto"); return false; } var pezzi = origstr.split([\.\/]); var ogg = new Date(pezzi[2], parseInt(pezzi[1])-1, pezzi[0]); if(parseInt(pezzi[2]) != ogg.getFullYear()) { alert("anno sbagliato"); return false; } if(parseInt(pezzi[1]) != ogg.getMonth()+1) { alert("mese sbagliato"); return false; } if(parseInt(pezzi[0]) != ogg.getDate()) { alert("giorno sbagliato"); return false; } return true; }
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati