js日期格式判斷(2011/01/30)+-方法+小時分秒格式判斷(HH:MM)

案例如下:

//日期格式判斷
        function lo_isDatePart(dateStr) {
            var parts;
            if (dateStr.indexOf("/") > -1) {
                parts = dateStr.split('/');
            } else {
                return false;
            }
            if (parts.length < 3) {
                //日期部分不允许缺少年、月、日中的任何一项
                return false;
            }
            for (i = 0; i < 3; i++) {
                //如果构成日期的某个部分不是数字,则返回false
                if (isNaN(parts[i])) {
                    return false;
                }
            }
            y = parts[0]; //年
            m = parts[1]; //月
            d = parts[2]; //日
            if (y > 3000 || y < 2011) {
                return false;
            }
            var smonth = "01,02,03,04,05,06,07,08,09,10,11,12";
            var asmonth = smonth.split(',');
            var asm = 0;
            for (q = 0; q < asmonth.length; q++) {
                if (m == asmonth[q]) {
                    asm = asm + 1;
                }
            }
            if (asm == 0) {
                return false;
            }
            var sday = "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
            var asday = sday.split(',');
            var asd = 0;
            for (q = 0; q < asday.length; q++) {
                if (d == asday[q]) {
                    asd = asd + 1;
                }
            }
            if (asd == 0) {
                return false;
            }
            switch (d) {
                case 29:
                    if (m == "02") {
                        //如果是2月份
                        if ((y / 100) * 100 == y && (y / 400) * 400 != y) {
                            //如果年份能被100整除但不能被400整除 (即闰年)
                        } else {
                            return false;
                        }
                    }
                    break;
                case 30:
                    if (m == "02") {
                        //2月没有30日
                        return false;
                    }
                    break;
                case 31:
                    if (m == "02" || m == "04" || m == "06" || m == "09" || m == "11") {
                        //2、4、6、9、11月没有31日
                        return false;
                    }
                    break;
                default:
            }
            return true;
        }
        /***********************************************************************
        * 判断一个字符串是否为合法的时间格式:HH:MM
        */
        function lo_isTimePart(timeStr) {
            var parts;
            parts = timeStr.split(':');
            if (parts.length < 1) {
                //日期部分不允许缺少小时、分钟中的任何一项
                return false;
            }
            for (i = 0; i < parts.length; i++) {
                //如果构成时间的某个部分不是数字,则返回false
                if (isNaN(parts[i])) {
                    return false;
                }
            }
            h = parts[0]; //小時
            m = parts[1]; //分
            if (h < 0 || h > 23) {
                //限制小时的范围
                return false;
            }
            if (m < 0 || m > 59) {
                //限制分钟的范围
                return false;
            }
            return true;
        }

你可能感兴趣的:(JS)