北漂IT民工 的博客

一个检测日期正确与否的javascript代码

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");