js 时间日期 校验格式 比较大小等(判断页面选择时间只能在早8点到晚8点之间)

知识点1:页面传入的是否是正确的日期+时间类型

1.新建/include/js/checkDate.js

checkDate.js

function IsValidYear(psYear)
{
    var sYear = new String(psYear);


    if(psYear==null)
    {
        return false;
    }


    if(isNaN(psYear)==true)
    {
        return false;
    }

    if(sYear == "")
    {
        return true;
    }

    if(sYear.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nYear = parseInt(sYear, 10);

    if((nYear < 0) || (9999 < nYear))
    {
        return false;
    }

    return true;
}


function IsValidMonth(psMonth)
{
    var sMonth = new String(psMonth);

    if(psMonth==null)
    {
        return false;
    }

    if(isNaN(psMonth)==true)
    {
        return false;
    }

    if(sMonth == "")
    {
        return true;
    }

    if(sMonth.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nMonth = parseInt(sMonth,10);

    if((nMonth < 0) || (12 < nMonth))
    {
        return false;
    }

    return true;
}


function IsValidDay(psDay)
{
    var sDay  = new String(psDay);

    if(psDay==null)
    {
        return false;
    }

    if(isNaN(psDay)==true)
    {
        return false;
    }

    if(sDay == "")
    {
        return true;
    }

    if(sDay.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nDay = parseInt(psDay, 10);

    if((nDay < 0) || (31 < nDay))
    {
        return false;
    }

    return true;
}

// 验证60
// 对于分钟,秒数,小时的校验的算法是一样的,本方法被复用
function IsValidNum(psSecond,num)
{
	  //alert(psSecond);
	  // alert(num);
    var second  = new String(psSecond);

    if(second==null)
    {
        return false;
    }

    if(isNaN(second)==true)
    {
        return false;
    }

    if(second == "")
    {
        return true;
    }

    if(second.match(/[^0-9]/g)!=null)
    {
        return false;
    }

    var nSecond = parseInt(second, 10);

    if((nSecond < 0) || (num <= nSecond))
    {
        return false;
    }

    return true;
}


// 验证小时
function IsValidHour(hour) {
	return IsValidNum(hour,24);
}

// 验证分钟
function IsValidMinute(minute) {
	return IsValidNum(minute,60);
}

// 验证秒数
function IsValidSecond(second) {
	return IsValidNum(second,60);

}

function IsValidDate(psYear, psMonth, psDay,psHour,psMinute,psSecond)
{
    if(psYear==null || psMonth==null || psDay==null || psHour==null || psMinute == null || psSecond == null)
    {
        return false;
    }

    var sYear  = new String(psYear);
    var sMonth = new String(psMonth);
    var sDay   = new String(psDay);
    var sHour = new String(psHour);
    var sMinute = new String(psMinute);
    var sSecond = new String(psSecond);

    if(IsValidYear(sYear)==false)
    {
        return false;
    }

    if(IsValidMonth(sMonth)==false)
    {
        return false;
    }

    if(IsValidDay(sDay)==false)
    {
        return false;
    }

    if(IsValidHour(sHour)==false)
    {
        return false;
    }

    if(IsValidMinute(sMinute)==false)
    {
        return false;
    }

    if(IsValidSecond(sSecond)==false)
    {
        return false;
    }
    
    var nYear  = parseInt(sYear,  10);
    var nMonth = parseInt(sMonth, 10);
    var nDay   = parseInt(sDay,   10);
    var nHour  = parseInt(sHour,  10);
    var nMinute = parseInt(sMinute, 10);
    var nSecond   = parseInt(sSecond,   10);
    
    if(sYear=="" &&  sMonth=="" && sDay=="" && sHour=="" && sMinute=="" && sSecond=="")
    {
        return true;
    }

    if(sYear=="" || sMonth=="" || sDay=="" || sHour=="" || sMinute=="" || sSecond=="")
    {
        return false;
    }
   
    if(nMonth < 1 || 12 < nMonth)
    {
        return false;
    }
    if(nDay < 1 || 31 < nDay)
    {
        return false;
    }

    if(nMonth == 2)
    {
        if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0))
        {
            if((nDay < 1) || (nDay > 29))
            {
                return false;
            }
        }
        else
        {
            if((nDay < 1) || (nDay > 28))
            {
                return false;
            }
        }
    }
    else if((nMonth == 1)  ||
            (nMonth == 3)  ||
            (nMonth == 5)  ||
            (nMonth == 7)  ||
            (nMonth == 8)  ||
            (nMonth == 10) ||
            (nMonth == 12))
    {
        if((nDay < 1) || (31 < nDay))
        {
            return false;
        }
    }
    else
    {
        if((nDay < 1) || (30 < nDay))
        {
            return false;
        }
    }

    return true;
}


2.jsp页面导入该js,然后使用

<title></title>
<script type='text/javascript' src='/include/js/checkDate.js'></script>
<script language="JavaScript">
function isValidDateString(dateString){ //判定时时间格式是否正确
		    //var pattern=/^ *(\d{4})-(\d{1,2})-(\d{1,2}) ([8-19]{1,2}):(\d{1,2}):(\d{1,2})*$/;
		    var pattern=/^ *(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})*$/;
		    var arr=pattern.exec(dateString);   //如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null
		    if(arr==null) return false;
		    var year=arr[1];
		    var month=arr[2];
		    var day=arr[3];
		    var hour=arr[4];
		    var minute=arr[5];
		    var second=arr[6];
		    return IsValidDate(year,month,day,hour,minute,second);
		}

function doAction(op){
	var v_pretime = document.getElementById("pretime").value;
	if (!isValidDateString(v_pretime)){  //时间格式校验
		alert("时间格式不正确,请重新选择!");
		pageDivLockClose();
		return ;
	}
}
</script>

 

未完待续,其他的上班来整理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值