function xxx
{
var birth=xxx//这个是你从表单获得的日期
var birthPattern = /\d{4}-\d{2}-\d{2}/
if(!birthPattern.test(birth)){
errorMessage += "The correct form of your birthday should be yyyy-mm-dd.\n"
document.getElementById("birth").value = ""
}
else if((checkDate(birth)==false)||(birth.length>10)){
errorMessage += "Your should enter a logical date.\n"
document.getElementById("birth").value = ""
}
}
//检查日期合法性
function checkDate(s){
var year = s.substr(0,4)
var month = s.substr(5,2)
var date = s.substr(8,2)
var today = new Date()
var curYear = today.getFullYear()
var curMonth = today.getMonth() + 1
var curDate = today.getDate()
var s1 = parseInt(year)
var s2 = parseInt(month)
var s3 = parseInt(date)
var lunar = (s1%400==0)||((s1%100!=0)&&(s1%4==0))
if((s1>curYear)||(s1<1949)||(s1==1949 &&s2<10))
return false
else if((s1==curYear)&&(s2>curMonth))
return false
else if((s1==curYear)&&(s2>curMonth)&&(s3>curDate))
return false
else if(s3>31)
return false
else if(s3<=31){
if((lunar==false)&&(s2==2)&&(s3>28))
return false
if((lunar)&&(s2==2)&&(s3>29))
return false
if((s2==4 || s2==6 || s2==9 || s2==11) &&(s3>30))
return false
}
else
return true
}
用的时候根据情况改改变量名函数名就行了.
function onchange(){//这里还要加些正则表达式判断一下,判断输入的是身份证格式
var len = document.getElementById("id").value.length
if(len>=13&&len<=15){
var content = document.getElementById("id").value
var str = content.split("")
var a
for(var i=5i<11i++){
a+=str[i]
//把a转换成生日的格式
}
document.getElementgetById("brithdate").value=a
}
}
大致思路是这样的,也可以用AJAX做出来