欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

日期校驗(yàn)?/?時(shí)間校驗(yàn)正則表達(dá)式深入解析(超實(shí)用!)

 更新時(shí)間:2024年05月11日 11:31:48   作者:騰云ntl  
正則表達(dá)式可用于匹配各種模式,下面這篇文章主要給大家介紹了關(guān)于日期校驗(yàn)/時(shí)間校驗(yàn)正則表達(dá)式深入解析的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

0 結(jié)論

以下為常用的日期格式校驗(yàn)表達(dá)式

0.1 日期格式校驗(yàn)

以下日期校驗(yàn)可滿足“四年一閏,百年不閏,四百年再閏”

  • yyyyMMdd
^(?:(?!0000)[0-9]{4}(?:(?:0[13578]|1[02])(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)(?:0[1-9]|[12][0-9]|30)|02(?:0[1-9]|1[0-9]|2[0-8]))|(?:(((\d{2})(0[48]|[2468][048]|[13579][26])|(([02468][048])|([13579][26]))00))0229))$
  • yyyy-MM-dd
^(?:(?!0000)[0-9]{4}\-(?:(?:0[13578]|1[02])(?:\-0[1-9]|\-[12][0-9]|\-3[01])|(?:0[469]|11)(?:\-0[1-9]|\-[12][0-9]|\-30)|02(?:\-0[1-9]|\-1[0-9]|\-2[0-8]))|(?:(((\d{2})(0[48]|[2468][048]|[13579][26])|(([02468][048])|([13579][26]))00))\-02\-29))$

0.2 時(shí)間格式校驗(yàn)

  • hhmmss

12 小時(shí)制,范圍為 000000 - 115959

^(?!120000)(?:0[0-9]|1[12])(?:[0-5][0-9]){2}$

24 小時(shí)制,范圍為 000000 - 235959

^(?!240000)(?:[01][0-9]|2[1-4])(?:[0-5][0-9]){2}$
  • hh:mm:ss

12 小時(shí)制,范圍為 00:00:00 - 11:59:59

^(?!12\:00\:00)(?:0[0-9]|1[12])(?:\:[0-5][0-9]){2}$

24 小時(shí)制,范圍為 00:00:00 - 23:59:59

^(?!24\:00\:00)(?:[01][0-9]|2[1-4])(?:\:[0-5][0-9]){2}$

0.3 使用方式

String uncheckedStr = "2023-12-12";
final String REGEX_PATTERN = "^(?:(?!0000)[0-9]{4}\-(?:(?:0[13578]|1[02])(?:\-0[1-9]|\-[12][0-9]|\-3[01])|(?:0[469]|11)(?:\-0[1-9]|\-[12][0-9]|\-30)|02(?:\-0[1-9]|\-1[0-9]|\-2[0-8]))|(?:(((\d{2})(0[48]|[2468][048]|[13579][26])|(([02468][048])|([13579][26]))00))\-02\-29))$";
if (!Pattern.matches(REGEX_PATTERN, uncheckedStr)) {
    throw new BusinessException(ErrorCodeEnum.INVALID_TIME_PATTERN);
}

1 日期校驗(yàn)正則表達(dá)式解析

以 yyyyMMdd 為例解析日期校驗(yàn)正則表達(dá)式組裝過程

  • 匹配前四位年份,匹配范圍為 0001-9999 ,使用 (?!) 排除 0000 ,獲得 yyyy 部分的校驗(yàn)正則表達(dá)式
(?!0000)[0-9]{4}
  • 由于月份與日期關(guān)聯(lián)存在多種可能,因此采用模式匹配
1. 31 天的月份 01 03 05 07 08 10 12
(?:0[13578]|1[02])          匹配月份
(?:0[1-9]|[12][0-9]|3[01])  匹配日期 01 - 31 

2. 30 天的月份 04 06 09 11
(?:0[469]|11)               匹配月份
(?:0[1-9]|[12][0-9]|30)     匹配日期 01 - 30

3. 02 月存在閏月的問題,且條件較為復(fù)雜,因此先匹配 01 - 28 的日期范圍
02                          匹配月份
(?:0[1-9]|1[0-9]|2[0-8])    匹配日期 01 - 28
  • 使用 | 組裝匹配模式,多個(gè)模式使用 (?:MODELA|MODELB|MODELC) 的方式進(jìn)行組合,此處組合匹配模式后獲得 mmdd 部分的校驗(yàn)正則表達(dá)式
匹配 MMdd 的表達(dá)式
(?:(?:0[13578]|1[02])(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)(?:0[1-9]|[12][0-9]|30)|02(?:0[1-9]|1[0-9]|2[0-8]))
   |--            31 天的月份日期              --|--          30 天的月份日期         --|--     28 天的月份日期    --|
  • 拼接第 1 步和第 3 步的匹配模式以組裝基本的 yyyyMMdd 模式,該模式下不考慮閏年,因此將第 2 步的二月的日期匹配范圍改到了 29,該模式無法辨認(rèn) 1900-02-29 的非閏年情形
不考慮閏年的簡(jiǎn)易模式(二月的日期匹配范圍改到了29,以下模式能正常使用)
^(?!0000)[0-9]{4}(?:(?:0[13578]|1[02])(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)(?:0[1-9]|[12][0-9]|30)|02(?:0[1-9]|1[0-9]|2[0-9]))$
  • 進(jìn)一步處理閏年年份
1. 非百年的年份處理較為簡(jiǎn)單,枚舉 4 的倍數(shù)且不為 100 的倍數(shù)的年份
((\d{2})(0[48]|[2468][048]|[13579][26])

2. 百年年份保留 400 的倍數(shù)
(([02468][048])|([13579][26]))00)
  • 拼接模式以匹配閏年日期 yyyy0229
(((\d{2})(0[48]|[2468][048]|[13579][26])|(([02468][048])|([13579][26]))00))0229
|--          非百年                    --|--        百年(保留400年)      --|
  • 結(jié)合第 3 步和第 6 步的結(jié)果組裝最終的匹配模式,該模式可以滿足 四年一閏,百年不閏,四百年再閏 的需求
^(?:(?!0000)[0-9]{4}(?:(?:0[13578]|1[02])(?:0[1-9]|[12][0-9]|3[01])|(?:0[469]|11)(?:0[1-9]|[12][0-9]|30)|02(?:0[1-9]|1[0-9]|2[0-8]))|(?:(((\d{2})(0[48]|[2468][048]|[13579][26])|(([02468][048])|([13579][26]))00))0229))$

附:下面是常用的一些時(shí)間日期格式驗(yàn)證Javascript代碼

// JavaScript Document
var success = 'success';         //校驗(yàn)成功
var failure = 'failure';         //校驗(yàn)失敗
var dateStrNull = 'dateStrNull'; //日期字符串為空
var formatError = "formatError"; //不符合格式
var lengthLt8 = "lengthLt8";     //長(zhǎng)度小于8
var monthLT1  = 'monthLT1';    //月份不能小于1
var monthGT12 = 'monthGT12';   //月份大于12
var dayGT28 = 'dayGT28';       //日期大于28
var dayGT29 = 'dayGT29';       //日期大于29
var dayGT30 = 'dayGT30';       //日期大于30
var dayGT31 = 'dayGT31';       //日期大于31
var dayLT1 = 'dayLT1';         //日期小于1
var hour24System = '24';       //采用24小時(shí)制
var hour12System = '12';       //采用12小時(shí)制
var hourGT23 = 'hourGT23';     //小時(shí)大于23
var hourGT11 = 'hourGT11';     //小時(shí)大于11
var minuteGT59 = 'minuteGT59'; //分鐘大于59
var secondGT59 = 'secondGT59'; //秒鐘大于59
var dateCompare = 'date';   //比較年月日
var dateTimeCompare = 'dateTime'; //比較年月日或者時(shí)分秒或者所有
var timeCompare = 'time';   //比較年時(shí)分秒
var dateTimeGTNow = 'dateTimeGTNow';  //大于當(dāng)前年月日或者時(shí)分秒或者所有
var dateTimeLTNow = 'dateTimeLTNow';  //小于當(dāng)前年月日或者時(shí)分秒或者所有
var equality = 'equality';       //時(shí)間相等
 
//時(shí)間格式的正則表達(dá)式
var YYYYMMDDReg = /[\d]{4}[\/-]{1}[\d]{1,2}[\/-]{1}[\d]{1,2}/g; 
var YYYYMMDDHHmmReg = /[\d]{4}[\/-]{1}[\d]{1,2}[\/-]{1}[\d]{1,2}\s[\d]{1,2}[:][\d]{1,2}/g;
var YYYYMMDDHHmmssReg = /[\d]{4}[\/-]{1}[\d]{1,2}[\/-]{1}[\d]{1,2}\s[\d]{1,2}[:][\d]{1,2}[:][\d]{1,2}/g;
var HHmmssReg = /[\d]{1,2}[:][\d]{1,2}[:][\d]{1,2}/g;
var HHmmReg = /[\d]{1,2}[:][\d]{1,2}/g;
 
/**
 * 校驗(yàn)是否為YYYY-MM-DD 日期格式
 * @param dateStr 時(shí)間字符串
 * @returns
 */
function validateYYYYMMDD(dateStr){
	//如果日期字符串為空
	if(strIsNull(dateStr)){
		return dateStrNull;
	}
	
	//如果小于8位
	if(dateStr.length < 8){
		return lengthLt8;
	}
	
	dateStr = addHRToStr(dateStr);
	
	var regResult = dateStr.replace(YYYYMMDDReg,'');
	//符合格式
	if(regResult==''){
		var line_one = dateStr.indexOf('-');       //獲取第一個(gè)橫-
		var line_two = dateStr.lastIndexOf('-');   //獲取第二個(gè)橫-
	
		var year_str = dateStr.substring(0,line_one);   //獲取年
		var month_str = dateStr.substring(line_one+1,line_two); //獲取月
		var day_str = dateStr.substring(line_two+1);  //獲取日
		
		//轉(zhuǎn)換成數(shù)字格式 
		var year_num = getIntValue(year_str);
		var month_num = getIntValue(month_str);
		var day_num = getIntValue(day_str);
		
		//校驗(yàn)月份
		var monthResult = validateMonth(month_num);
		if(monthResult!=success){
			return monthResult;
		}
		
		//如果日期小于1
		if(day_num<1){
			return dayLT1;
		}
		//校驗(yàn)日期
		return validateDay(year_num,month_num,day_num);
	}else{
		return formatError;
	}
	return failure;
}
 
/**
 * 校驗(yàn)是否為YYYY-MM-DD HH:mm 日期+時(shí)分格式
 * @param dateStr 時(shí)間字符串
 * @param hourSys 小時(shí)制(默認(rèn)24小時(shí)制)
 * @returns
 */
function validateYYYYMMDDHHmm(dateStr,hourSys){
	//如果日期字符串為空
	if(strIsNull(dateStr)){
		return dateStrNull;
	}
	
	//如果小時(shí)制為空,則設(shè)置為24小時(shí)制
	if(strIsNull(hourSys)){
		hourSys = hour24System;
	}
	
	var regResult = dateStr.replace(YYYYMMDDHHmmReg,'');
	//符合格式
	if(regResult==''){
		var line_one = dateStr.indexOf('-');       //獲取第一個(gè)橫-
		var line_two = dateStr.lastIndexOf('-');   //獲取第二個(gè)橫-
		var space = dateStr.indexOf(' ');          //獲取空格
		var colon_one = dateStr.indexOf(':');  //獲取第一個(gè)冒號(hào)
 
		var year_str = dateStr.substring(0,line_one);   //獲取年
		var month_str = dateStr.substring(line_one+1,line_two); //獲取月
		var day_str = dateStr.substring(line_two+1,space);  //獲取日
		var hour_str = dateStr.substring(space+1,colon_one); //獲取小時(shí)
		var minute_str = dateStr.substring(colon_one+1);  //獲取分鐘
		
		//轉(zhuǎn)換成數(shù)字格式 
		var year_num = getIntValue(year_str);
		var month_num = getIntValue(month_str);
		var day_num = getIntValue(day_str);
 
		var hour_num = getIntValue(hour_str);
		var minute_num = getIntValue(minute_str);
		
		//校驗(yàn)月份
		var monthResult = validateMonth(month_num);
		if(monthResult!=success){
			return monthResult;
		}
		
		//如果日期小于1
		if(day_num<1){
			return dayLT1;
		}
		//校驗(yàn)日期
		var dayResult = validateDay(year_num,month_num,day_num);
		if(dayResult!=success){
			return dayResult;
		}
		
		//校驗(yàn)小時(shí)
		var hourResult = validateHour(hour_num,hourSys);
		if(hourResult!=success){
			return hourResult;
		}
		
		return validateMinute(minute_num);
	}else{
		return formatError;
	}
	return failure;
}
 
/**
 * 校驗(yàn)是否為YYYY-MM-DD HH:mm:ss 日期+時(shí)分秒格式
 * @param dateStr 時(shí)間字符串
 * @param hourSys 小時(shí)制(默認(rèn)24小時(shí)制)
 * @returns
 */
function validateYYYYMMDDHHmmss(dateStr,hourSys){
	//如果日期字符串為空
	if(strIsNull(dateStr)){
		return dateStrNull;
	}
	
	//如果小時(shí)制為空,則設(shè)置為24小時(shí)制
	if(strIsNull(hourSys)){
		hourSys = hour24System;
	}
	
	var regResult = dateStr.replace(YYYYMMDDHHmmssReg,'');
	//符合格式
	if(regResult==''){
		var line_one = dateStr.indexOf('-');       //獲取第一個(gè)橫-
		var line_two = dateStr.lastIndexOf('-');   //獲取第二個(gè)橫-
		var space = dateStr.indexOf(' ');          //獲取空格
		var colon_one = dateStr.indexOf(':');      //獲取第一個(gè)冒號(hào)
		var colon_two = dateStr.lastIndexOf(':');  //獲取第二個(gè)冒號(hào)
		
		var year_str = dateStr.substring(0,line_one);   //獲取年
		var month_str = dateStr.substring(line_one+1,line_two); //獲取月
		var day_str = dateStr.substring(line_two+1,space);  //獲取日
		
		var hour_str = dateStr.substring(space+1,colon_one); //獲取小時(shí)
		var minute_str = dateStr.substring(colon_one+1,colon_two);  //獲取分鐘
		var second_st = dateStr.substring(colon_two+1);  //獲取分鐘
		
		//轉(zhuǎn)換成數(shù)字格式 
		var year_num = getIntValue(year_str);
		var month_num = getIntValue(month_str);
		var day_num = getIntValue(day_str);
		
		var hour_num = getIntValue(hour_str);
		var minute_num = getIntValue(minute_str);
		var second_num = getIntValue(second_st);
		
		//校驗(yàn)月份
		var monthResult = validateMonth(month_num);
		if(monthResult!=success){
			return monthResult;
		}
		
		//如果日期小于1
		if(day_num<1){
			return dayLT1;
		}
		//校驗(yàn)日期
		var dayResult = validateDay(year_num,month_num,day_num);
		if(dayResult!=success){
			return dayResult;
		}
		
		//校驗(yàn)小時(shí)
		var hourResult = validateHour(hour_num,hourSys);
		if(hourResult!=success){
			return hourResult;
		}
		
		//校驗(yàn)分鐘
		var minuteResult = validateMinute(minute_num);
		if(minuteResult!=success){
			return minuteResult;
		}
		
		//校驗(yàn)秒
		return validateSecond(second_num);
	}else{
		return formatError;
	}
	return failure;
}
 
/**
 * 校驗(yàn)是否為HH:mm:ss 時(shí)分秒格式
 * @param dateStr 時(shí)間字符串
 * @param hourSys 小時(shí)制(默認(rèn)24小時(shí)制)
 * @returns
 */
function validateHHmmss(dateStr,hourSys){
	//如果日期字符串為空
	if(strIsNull(dateStr)){
		return dateStrNull;
	}
	
	//如果小時(shí)制為空,則設(shè)置為24小時(shí)制
	if(strIsNull(hourSys)){
		hourSys = hour24System;
	}
	
	var regResult = dateStr.replace(HHmmssReg,'');
	//符合格式
	if(regResult==''){
		var colon_one = dateStr.indexOf(':');      //獲取第一個(gè)冒號(hào)
		var colon_two = dateStr.lastIndexOf(':');  //獲取第二個(gè)冒號(hào)
	
		var hour_str = dateStr.substring(0,colon_one); //獲取小時(shí)
		var minute_str = dateStr.substring(colon_one+1,colon_two);  //獲取分鐘
		var second_st = dateStr.substring(colon_two+1);  //獲取分鐘
		
		//轉(zhuǎn)換成數(shù)字格式 
		var hour_num = getIntValue(hour_str);
		var minute_num = getIntValue(minute_str);
		var second_num = getIntValue(second_st);
 
		//校驗(yàn)小時(shí)
		var hourResult = validateHour(hour_num,hourSys);
		if(hourResult!=success){
			return hourResult;
		}
		
		//校驗(yàn)分鐘
		var minuteResult = validateMinute(minute_num);
		if(minuteResult!=success){
			return minuteResult;
		}
		
		//校驗(yàn)秒
		return validateSecond(second_num);
	}else{
		return formatError;
	}
	return failure;
}
 
/**
 * 校驗(yàn)是否為HH:mm 時(shí)分格式
 * @param dateStr 時(shí)間字符串
 * @param hourSys 小時(shí)制(默認(rèn)24小時(shí)制)
 * @returns
 */
function validateHHmm(dateStr,hourSys){
	//如果日期字符串為空
	if(strIsNull(dateStr)){
		return dateStrNull;
	}
	
	//如果小時(shí)制為空,則設(shè)置為24小時(shí)制
	if(strIsNull(hourSys)){
		hourSys = hour24System;
	}
	
	var regResult = dateStr.replace(HHmmReg,'');
	//符合格式
	if(regResult==''){
		var colon_one = dateStr.indexOf(':');      //獲取第一個(gè)冒號(hào)
		var hour_str = dateStr.substring(0,colon_one); //獲取小時(shí)
		var minute_str = dateStr.substring(colon_one+1);  //獲取分鐘
		
		//轉(zhuǎn)換成數(shù)字格式 
		var hour_num = getIntValue(hour_str);
		var minute_num = getIntValue(minute_str);
 
		//校驗(yàn)小時(shí)
		var hourResult = validateHour(hour_num,hourSys);
		if(hourResult!=success){
			return hourResult;
		}
		
		//校驗(yàn)分鐘
		return validateMinute(minute_num);
	}else{
		return formatError;
	}
	return failure;
}
 
/**
 * 添加橫線到日期的格式
 * @param oldStr
 * @returns {String}
 */
function addHRToStr(oldStr){
	//如果存在-或者/
	if(oldStr.indexOf('-')>=0 || oldStr.indexOf('/')>=0){
		return oldStr;
	}
	
	//如果小于6或者大于8
	if(oldStr.length != 8 ){
		return oldStr;
	}
	
	var idx1 = 4;
	var idx2 = 6;
	
	if(oldStr.length == 6){
		idx2 = 5;
	}else if(oldStr.length == 7){
		idx2 = 6;
	}
	
	var newStr = oldStr.substring(0,4) + "-" + oldStr.substring(4,idx2) + "-" + oldStr.substring(idx2);
	return newStr;
}
 
/**
 * 校驗(yàn)是否大于當(dāng)前時(shí)間(自動(dòng)檢測(cè)傳入的時(shí)間格式)
 * @param dateStr
 * @returns
 */
function isMorethanNow(dateStr){
	var result = 'equals';
	//如果是YYYY-MM-DD
	if(dateStr.replace(YYYYMMDDReg,'')==''){
		result = compareNow(dateStr,dateCompare);
		
	//如果是YYYY-MM-DD HH:mm:ss
	}else if(dateStr.replace(YYYYMMDDHHmmssReg,'')==''){
		result = compareNow(dateStr,dateTimeCompare);
		
	//如果是YYYY-MM-DD HH:mm
	}else if(dateStr.replace(YYYYMMDDHHmmReg,'')==''){
		result = compareNow(dateStr+":59",dateTimeCompare);
		
	//如果是HH:mm:ss
	}else if(dateStr.replace(HHmmssReg,'')==''){
		result = compareNow(dateStr,timeCompare);
	
	//如果是HH:mm
	}else if(dateStr.replace(HHmmReg,'')==''){
		result = compareNow(dateStr+":59",timeCompare);
	}
	//如果大于
	if(result == dateTimeGTNow){
		return 'true';
	}else if(result == dateTimeLTNow){
		return 'false';
	}else{
		return 'equals';
	}
}
 
/**
 * 比較當(dāng)前的日期或者時(shí)間(日期,時(shí)間)
 * @param dateStr
 * @param compareType 比較方式 date,time,dateTime (默認(rèn)比較年月日)
 */
function compareNow(dateStr,compareType){
	//如果比較方式為空
	if(strIsNull(compareType)){
		compareType = dateCompare;
	}
 
	//獲取當(dāng)前日期
	var now = new Date();
	//比較日期
	if(compareType == dateCompare){
		var nowDate = new Date(now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate());
		var fd_date = new Date(dateStr.replace(/-/g,'/'));
		
		if(fd_date>nowDate){
			return dateTimeGTNow;
		}else if(fd_date<nowDate){
			return dateTimeLTNow;
		}else{
			return equality;
		}
	//比較年月日時(shí)分秒
	}else if(compareType == dateTimeCompare){
		var fd_date = new Date(dateStr.replace(/-/g,'/'));
		
		if(fd_date>now){
			return dateTimeGTNow;
		}else if(fd_date<now){
			return dateTimeLTNow;
		}else{
			return equality;
		}
	//比較時(shí)分秒	
	}else if(compareType == timeCompare){
		var nowTimeStr = now.getHours()+''+ now.getMinutes()+''+ now.getSeconds();
		var dateStrNoSpace = dateStr.replace(/:/g,'');
		
		if(dateStrNoSpace>nowTimeStr){
			return dateTimeGTNow;
		}else if(dateStrNoSpace<nowTimeStr){
			return dateTimeLTNow;
		}else{
			return equality;
		}	
	}
}
 
/**
 * 校驗(yàn)月份是否合法
 * @param month_num 月份
 * @returns
 */
function validateMonth(month_num){
	//如果月份大于12或小于1
	if(month_num>12){
		return monthGT12;
	}else if(month_num<1){
		return monthLT1;
	}
	return success;
}
 
/**
 * 校驗(yàn)日期是否合法
 * @param year_num  年份
 * @param month_num 月份
 * @param day_num 日期
 * @returns
 */
function validateDay(year_num,month_num,day_num){
	if(day_num<1){
		return dayLT1;
		
	//如果月份是1,3,5,7,8,10,12
	}else if((month_num==1||month_num==3||month_num==5||month_num==7
			||month_num==8||month_num==10||month_num==12)&&day_num>31){
		return dayGT31;
		
	//如果月份是4,6,9,11
	}else if((month_num==4||month_num==6||month_num==9||month_num==11)
			&&day_num>30){
		return dayGT30;
		
	//如果月份是2
	}else if(month_num==2){
		//如果為閏年
		if(isLeapYear(year_num)&&day_num>29){
			return dayGT29;
		}else if(day_num>28){
			return dayGT28;
		}
	}
	return success;
}
 
/**
 * 校驗(yàn)是否為閏年
 * @param year_num
 * @returns
 */
function isLeapYear(year_num){
 
	/*年份為4的倍數(shù)不一定是閏年
	 * (1)年份不是100的倍數(shù)但是4的倍數(shù)都是閏年 
	 * (2)年份是400的倍數(shù)的年份是閏年 (如1900年不是閏年,而2000年是閏年)
	 */
	return year_num%4==0&&(year_num%100!=0||year_num%400==0);
}
 
/**
 * 校驗(yàn)小時(shí)
 * @param hourSys 小時(shí)制
 * @param hour_num
 * @returns
 */
function validateHour(hour_num,hourSys){
	//24小時(shí)制
	if(hourSys == hour24System&&hour_num > 23){
		return hourGT23;
	
	//12小時(shí)制
	}else if(hourSys == hour12System&&hour_num > 11){
		return hourGT11;
	}
	return success;
}
 
/**
 * 校驗(yàn)分鐘
 * @param minute_num
 * @returns
 */
function validateMinute(minute_num){
	//如果小時(shí)大于24
	if(minute_num>59){
		return minuteGT59;
	}
	return success;
}
 
/**
 * 校驗(yàn)秒鐘
 * @param second_num
 * @returns
 */
function validateSecond(second_num){
	//如果小時(shí)大于24
	if(second_num>59){
		return secondGT59;
	}
	return success;
}
 
/**
 * 根據(jù)字符串獲取整數(shù)值
 * @param str
 * @returns
 */
function getIntValue(str){
	if(strIsNull(str)){
		return 0;
	}
	
	return str.replace(/^0+/g,'');
}
 
/**
 * 字符串是否為空
 * @param dateStr
 */
function strIsNull(str){
	if(str!=null
			&&str.replace(/(^\s*)|(\s*$)/g,'').length>0){
		return false;
	}
	return true;
}
 
/**
 * 得到錯(cuò)誤的提示信息
 * @param errCode 錯(cuò)誤碼
 * @param controlName 控件名
 * @param format 格式 
 */
function getErrorMsg(errCode,controlName,format){
	if(errCode == dateStrNull){
		return controlName+'不能為空';
	}else if(errCode == formatError){
		return controlName+'請(qǐng)按日期格式\''+format+'\'輸入';
	}else if(errCode == lengthLt8){
		return controlName+'請(qǐng)按日期格式\'YYYYMMDD\'輸入';
	}else if(errCode == monthLT1){
		return controlName+'填寫的月份有誤,月份不能小于1';
	}else if(errCode == monthGT12){
		return controlName+'填寫的月份有誤,月份不能大于12';
	}else if(errCode == dayLT1){
		return controlName+'填寫的日期有誤,日期不能小于1';
	}else if(errCode == dayGT28){
		return controlName+'填寫的日期有誤,平年的2月份日期不能大于28';
	}else if(errCode == dayGT29){
		return controlName+'填寫的日期有誤,閏年的2月份日期不能大于29';
	}else if(errCode == dayGT30){
		return controlName+'填寫的日期有誤,月份為4,6,9,11時(shí),日期不能大于30';
	}else if(errCode == dayGT31){
		return controlName+'填寫的日期有誤,月份為1,3,5,7,8,10,12時(shí),日期不能大于31';
	}else if(errCode == hourGT23){
		return controlName+'填寫的小時(shí)有誤,24小時(shí)制的小時(shí)數(shù)不能超過23';
	}else if(errCode == hourGT11){
		return controlName+'填寫的小時(shí)有誤,12小時(shí)制的小時(shí)數(shù)不能超過11';
	}else if(errCode == minuteGT59){
		return controlName+'填寫的分有誤,分鐘數(shù)不能超過59';
	}else if(errCode == secondGT59){
		return controlName+'填寫的秒有誤,秒鐘數(shù)不能超過59';
	}else if(errCode == dateGTNow){
		return controlName+'填寫日期有誤,不能大于當(dāng)前日期';
	}else if(errCode == dateLTNow){
		return controlName+'填寫日期有誤,不能小于當(dāng)前日期';
	}else if(errCode == timeGTNow){
		return controlName+'填寫時(shí)間有誤,不能大于當(dāng)前時(shí)間';
	}else if(errCode == timeLTNow){
		return controlName+'填寫時(shí)間有誤,不能小于當(dāng)前時(shí)間';
	}else if(errCode == failure ){
		return controlName+'填寫有誤';
	}
}
 

總結(jié) 

到此這篇關(guān)于日期校驗(yàn)/時(shí)間校驗(yàn)正則表達(dá)式的文章就介紹到這了,更多相關(guān)日期時(shí)間校驗(yàn)正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論