<input type=text id=tDate onblur="checkDate(tDate.value)">
<script language=javascript>
//判断日期格式YYYY-MM-DD
//限中文操作系统function checkDate(inputDate)
{
if(inputDate!="")
{
var reg = /^(\d{4})\-(\d{2})\-(\d{2})$/;if(reg.exec(inputDate)==null) 
{
alert("Wrong Date");
return false;
}
var year = RegExp.$1;
var month = RegExp.$2;
var day = RegExp.$3;
var d = new Date(month+"/"+day+"/"+year);var dateStr = d.toLocaleString();newMonth = dateStr.substring(dateStr.indexOf("年")+1,dateStr.indexOf("月"));if(newMonth!= parseInt(month,10).toString())
{
alert("Wrong Date");
return false;
}else
{
alert("True Date");
return true;
}
}
}
</script>

解决方案 »

  1.   

    function isDateString(sDate)
    { var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
    var iaDate = new Array(3)
    var year, month, day if (arguments.length != 1) return false
    iaDate = sDate.toString().split("-")
    if (iaDate.length != 3) return false
    if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
    if (isNaN(iaDate[0])||isNaN(iaDate[1])||isNaN(iaDate[2])) return false year = parseFloat(iaDate[0])
    month = parseFloat(iaDate[1])
    day=parseFloat(iaDate[2]) if (year < 1900 || year > 2100) return false
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
    if (month < 1 || month > 12) return false
    if (day < 1 || day > iaMonthDays[month - 1]) return false
    return true
    }
    function stringToDate(sDate, bIgnore)
    { var bValidDate, year, month, day
    var iaDate = new Array(3)

    if (bIgnore) bValidDate = true
    else bValidDate = isDateString(sDate)

    if (bValidDate)
    {  iaDate = sDate.toString().split("-")
    year = parseFloat(iaDate[0])
    month = parseFloat(iaDate[1]) - 1
    day=parseFloat(iaDate[2])
    return (new Date(year,month,day))
    }
    else return (new Date(1900,1,1))
    }
      

  2.   

    <INPUT TYPE="text" NAME="" onblur="alert(/^\d{4}(-)\d{1,2}(-)\d{1,2}$/.test(this.value))">
      

  3.   


    <script>
    function IsDate(val)
    {
        var reg=/^(\d{4})-(\d{2})-(\d{2})$/
        var r = val.match(reg);
    if(val == '')
    {
        alert('输入不能为空');
    return;
    }
    if (r == null)
    {
        alert("输入格式错误");
    return;
    }
    else 
    {
        alert(r.slice(0,r.length));
    r[2]--;
        var d= new Date(r[1], r[2],r[3]);
        if(d.getDate()!=r[3])
        {
            alert("日期格式错误!");
                return;
            }
            if(d.getMonth()!=r[2])
            {  
                alert("月份格式错误!");
                return;
            }
            if(d.getFullYear()!=r[1])
            {
                alert("年份格式错误!");
            return;
            }
    }

    alert("输入正确!");
    }
    </script>
    <input type="text" value="" onblur="IsDate(this.value)">