javascript正则表达式
匹配年月日格式为yyyymmdd
年必须是19或者20开头的。
function test(str)
{
var reg=/^((19|20)[0-9]{2})((0[1-9])|(1[0-2]))((0[1-9])|((1|2)[0-9])|(3[0-1]))$/;
if(reg.test(str)){
alert('正确');
}
else{
alert('error');
}
}
分为三个步骤
先看年
((19|20)[0-9]{2})
必须是19或者20开头作为一部分,后面两个就取0-9中取两次。
再看月((0[1-9])|(1[0-2]))
如果是1-9月,那么就应该显示01-09
如果第一位是0,第二位就取1-9,如果第一位是1,第二位就取0-2
在看日期
((0[1-9])|((1|2)[0-9])|(3[0-1]))
如果第一位取0,第二位就可以取1-9
如果第一位取1-2,第二位就可以取0-9
如果第一位取3,第二位就可以取0-1