1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| function checkData(str) {
var year = /^(19|20|21)[0-9]{2}$/;
var month = /^(0[1-9])|(1[0-2])$/;
var date = /^(0[1-9])|([1-2][0-9])|(3[0-1])$/;</p>
var ystr = str.substring(0, str.length - 4);
var mstr = str.substring(str.length - 4, str.length - 2);
var dstr = str.substring(str.length - 2, str.length);
if(mstr == '02') {
if ((ystr - 0) % 4 == 0) {
if(dstr - 0 > 29) return false;
} else {
if (dstr - 0 > 28) return false;
}
} else if ((mstr - 0) % 2 == 0) {
//只需要验证不大于31天的月份
if (dstr - 0 > 30) return false;
}
return year.test(ystr) && month.test(mstr) && date.test(dstr);
}
checkData("20120229");
|