<script language="javascript">
function check()
{
  var m=/^(\d){4}-(\d){1,2}-(\d){1,2}$/;
  s=document.all("input").value.match(m)
if (s==null)
{
  alert("日期不正确");
  return false;
}
else
{
  var d=new Date(s[1],s[2],s[3]);
  if(s[2]!=d.getMonth())
  {
     alert("日期不正确");
     return false;
  }
  if(s[3]!=d.getDate())
  {
    alert("日期不正确");
    return false;
  }
}
}
</script>
<input type="text" name="input" onBlur="check()">

解决方案 »

  1.   

    我这里是直接调用VBScript函数做的。
    <Script language="VBScript">
        Function fCheckDate(str)    
            fCheckDate = 0
            If (IsDate(str) OR str = "//") Then
                fCheckDate = 1
            Else
                fCheckDate = 0
            End If
        End Function</Script>
    然后在JS中直接调用这个就可以了。
    if (!fCheckDateValue(form))
    {
    return false;
    }
      

  2.   

    http://expert.csdn.net/Expert/topic/1823/1823464.xml?temp=.4257166
    你搜索一下,有很多的!
      

  3.   

    谢谢各位!在此转贴一些js函数以表谢意-------->//<script>
    /****************************************************************\
    JScript 常用运行库 Version 1.4

    作者 : Lostinet[迷失网络]
    Email : [email protected]
    \****************************************************************/function LostinetJScriptRuntimeLibrary(){}/****************************************************************\
    Global
    \****************************************************************/
    function Global(){}
    function Global.GetUndefined(){}
    function Global.ValueOf(unknown){
    if(Global.IsUndefined(unknown))return Global.GetUndefined();
    try{
    return unknown.valueOf();
    }catch(x){}
    return unknown;
    }function Global.ToString(unknown){
    if(Global.IsUndefined(unknown))return "";
    if(Global.IsJScriptObject(unknown))
    {
    try{
    return String.Convert(unknown.toString());
    }catch(x){}
    }
    return String.Convert(unknown);
    }
    function Global.IsBlank(unknown){
    switch(typeof(unknown))
    {
    case "undefined":return true;
    case "string":return unknown=="";
    case "number":return unknown==0;
    case "object":return unknown==null;
    case "function":return false;
    default:return unknown?false:true;
    }
    }
    function Global.IsJScriptType(unknown)
    {
    switch(typeof(unknown))
    {
    case "object":
    return Global.IsJScriptObject(unknown);
    case "function":
    case "string":
    case "number":
    case "boolean":
    case "undefined":
    return true;
    default:
    return false;
    }
    }
    function Global.IsJScriptObject(unknown)
    {
    if(typeof(unknown)=="function")return true;
    if(typeof(unknown)!="object")return false;
    try{
    return typeof(unknown.constructor)=="function";
    }catch(x){
    }
    return false;
    }
    function Global.ThrowError(msg){
    throw(new Error(-1,msg));
    }
      

  4.   

    /****************************************************************\
    Object
    \****************************************************************//*
    unknown,function,ActiveXObject等会被认为是undefined
    除了Object和Array,其他object类型的子属性会被忽略
    自定义的constructor会自动转为Object
    */
    //需要优化
    function Object.Encode(v)
    {
    var Encoders={"unknown":_unknown,"object":_object,"function":_function,"string":_string,"number":_number,"boolean":_boolean,"undefined":_undefined};
    return InnerEncode(v);
    function InnerEncode(v)
    {
    var der=Encoders[typeof(v)];
    if(der)
    return der(v);
    return _undefined(v);
    }
    function EncodeString(v){
    v=String.Convert(v);
    v=v.replace(/\&/g,"&0");
    v=v.replace(/\=/g,"&1");
    v=v.replace(/\:/g,"&2");
    v=v.replace(/\,/g,"&3");
    return v;
    }
    function _unknown(v)
    {
    return _undefined(v);
    }
    function _object(v)
    {
    if(!Global.IsJScriptObject(v))
    return _undefined(v);
    switch(v.constructor)
    {
    case Array: return _Array(v);
    case Date: return _Date(v);
    case String: return _String(v);
    case Number: return _Number(v);
    case Boolean: return _Boolean(v);
    case RegExp: return _RegExp(v);
    case Object:
    default:
    return _Object(v);
    }
    function _Object(v)
    {
    var str="object_Object=";
    var arr=[];
    for(var i in v)
    {
    if(Global.IsJScriptType(v[i])&&typeof(v[i])!="function")
    arr[arr.length]=EncodeString(EncodeString(i)+":"+EncodeString(InnerEncode(v[i])));
    }
    return str+arr.join(",");
    }
    function _Array(v)
    {
    var str="object_Array=";
    var arr=[];
    for(var i in v)
    {
    if(Global.IsJScriptType(v[i])&&typeof(v[i])!="function")
    arr[arr.length]=EncodeString(EncodeString(i)+":"+EncodeString(InnerEncode(v[i])));
    }
    return str+arr.join(",");
    }
    function _Date(v){return "object_Date="+v.getTime();}
    function _String(v){return "object_String="+EncodeString(v);}
    function _Number(v){return "object_Number="+EncodeString(v);}
    function _Boolean(v){return "object_Boolean="+EncodeString(v.ToString());}
    function _RegExp(v)
    {
    return "object_RegExp="+
    EncodeString(
    "p:"+EncodeString(v)+
    "i:"+EncodeString(Boolean.ToString(v.ignoreCase))+
    "g:"+EncodeString(Boolean.ToString(v.global))
    );
    }
    }
    function _function(v){return _undefined(v);}
    function _string(v){return "string="+EncodeString(v);}
    function _number(v){return "number="+EncodeString(v);}
    function _boolean(v){return "boolean="+EncodeString(v.ToString());}
    function _undefined(v){return "undefined=undefined";}
    }
      

  5.   

    //需要优化
    function Object.Decode(s)
    {
    s=String.Convert(s);
    var Decoders={"object_Object":_object_Object,"object_Array":_object_Array,"object_Date":_object_Date,"object_String":_object_String,"object_Number":_object_Number,"object_Boolean":_object_Boolean,"object_RegExp":_object_RegExp,"string":_string,"number":_number,"boolean":_boolean,"undefined":_undefined};
    return InnerDecode(s);
    function InnerDecode(s)
    {
    s=String.Convert(s);
    var arr=s.split("=");
    var type=arr[0];
    var der=Decoders[type];
    if(der)
    return der(String.Convert(arr[1]));
    return _undefined(String.Convert(arr[1]));
    }
    function DecodeString(v){
    v=String.Convert(v);
    v=v.replace(/\&3/g,",");
    v=v.replace(/\&2/g,":");
    v=v.replace(/\&1/g,"=");
    v=v.replace(/\&0/g,"&");
    return v;
    }
    function _object_Object(ss)
    {
    var obj=new Object();
    var arr=ss.split(",");
    for(var i=0;i<arr.length;i++)
    {
    var arr2=DecodeString(arr[i]).split(":");
    var index=DecodeString(arr2[0]);
    if(index=="")break;
    obj[index]=InnerDecode(DecodeString(arr2[1]));
    }
    return obj;
    }
    function _object_Array(ss)
    {
    var obj=new Array();
    var arr=ss.split(",");
    for(var i=0;i<arr.length;i++)
    {
    var arr2=DecodeString(arr[i]).split(":");
    var index=DecodeString(arr2[0]);
    if(index=="")break;
    obj[index]=InnerDecode(DecodeString(arr2[1]));
    }
    return obj;
    }
    function _object_Date(ss){return Date.Convert(Number.Convert(DecodeString(ss)));}
    function _object_String(ss){return new String(String.Convert(DecodeString(ss)));}
    function _object_Number(ss){return new Number(Number.Convert(DecodeString(ss)));}
    function _object_Boolean(ss){return new Boolean(Boolean.ConvertFromString(DecodeString(ss)));}
    function _object_RegExp(ss)
    {
    var obj=new Object();
    var arr=ss.split(",");
    for(var i=0;i<arr.length;i++)
    {
    var arr2=DecodeString(arr[i]).split(":");
    var index=DecodeString(arr2[0]);
    if(index=="")break;
    obj[index]=InnerDecode(DecodeString(arr2[1]));
    }
    var re=new RegExp();
    re.pattern=String.Convert(obj.p);
    re.ignoreCase=Boolean.Convert(obj.i);
    re.global=Boolean.Convert(obj.g);
    return re;
    }
    function _string(ss){return String.Convert(DecodeString(ss));}
    function _number(ss){return Number.Convert(DecodeString(ss));}
    function _boolean(ss){return Boolean.ConvertFromString(DecodeString(ss));}
    function _undefined(ss){return Global.GetUndefined();}
    }