//匹配日期格式2008-01-31,但不匹配2008-13-00
patterns.date = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;

/*匹配时间格式00:15:39,但不匹配24:60:00,下面使用RegExp对象的构造方法
来创建RegExp对象实例,注意正则表达式模式文本中的“\”要写成“\\”*/
patterns.time = new RegExp("^([0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$");

解决方案 »

  1.   

    //功能介绍:检查是否为日期时间 
    function CheckDateTime(str){  
        var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
        var r = str.match(reg); 
        if(r==null)return false; 
        r[2]=r[2]-1; 
        var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); 
        if(d.getFullYear()!=r[1])return false; 
        if(d.getMonth()!=r[2])return false; 
        if(d.getDate()!=r[3])return false; 
        if(d.getHours()!=r[4])return false; 
        if(d.getMinutes()!=r[5])return false; 
        if(d.getSeconds()!=r[6])return false; 
        return true;
    }
      

  2.   

    function CheckDateTime(oSrc, args)
    {
    var str="2003-11-24 "+args.Value+":12";
    var  reg  =  /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;    
    var  r  =  str.match(reg);
    if(r==null)
    {
    args.IsValid = false;
    return;
    }
    r[2]=r[2]-1;    
    var  d=  new  Date(r[1],  r[2],r[3],  r[4],r[5],  r[6]);    
    if(d.getFullYear()!=r[1])
    {
    args.IsValid = false;
    return;

    if(d.getMonth()!=r[2])
    {
    args.IsValid = false;
    return;

    if(d.getDate()!=r[3])
    {
    args.IsValid = false;
    return;

    if(d.getHours()!=r[4])
    {
    args.IsValid = false;
    return;

    if(d.getMinutes()!=r[5])
    {
    args.IsValid = false;
    return;

    if(d.getSeconds()!=r[6])
    {
    args.IsValid = false;
    return;


    args.IsValid = true; }