日期验证

  1. package yiyou   
  2. {   
  3.     import mx.controls.Alert;   
  4.   
  5.     public class GenDateValidator   
  6.     {   
  7.         public function GenDateValidator()   
  8.         {   
  9. //          validatorDate(str);   
  10.         }   
  11.         public function validatorDate(str:String):Boolean   
  12.         {   
  13.             var formatStr:RegExp=/^[1-9][0-9][0-9][0-9]年[0-1][0-9]月[0-3][0-9]日[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/;   
  14.             var flag:Boolean = false;   
  15.             /**  
  16.              * 验证输入格式是否合法  
  17.              * 验证的内容有格式是否为  
  18.              * 1:xxxx年xx月xx日xx:xx:xx  
  19.              * 2:月份是否为  
  20.              **/  
  21.                
  22.             if(formatStr.exec(str)==null){   
  23.                 Alert.show("输入格式不合法");   
  24.             }else  
  25.             {   
  26.                    
  27.                 //当小时为24小时的时候,分钟和秒钟都要为00   
  28.                 var yearStr:String = str.substr(0,4);   
  29.                 var monthStr:String = str.substr(5,2);   
  30.                 var dayStr:String = str.substr(8,2);   
  31.                 var hourStr:String=str.substr(11,2);//截取小时   
  32.                 var minStr:String = str.substr(14,2);   
  33.                 var secondStr:String = str.substr(17,2);   
  34.                    
  35.                 var year:Number = parseInt(yearStr);   
  36.                 var month:Number = parseInt(monthStr);   
  37.                 var day:Number = parseInt(dayStr);   
  38.                 var hour:Number = parseInt(hourStr);   
  39.                 var minute:Number = parseInt(minStr);   
  40.                 var second:Number = parseInt(secondStr);   
  41.                    
  42.                 flag = (validatorMonth(month) && validatorMonth(month) && validatorDay(day,month,year) && validatorHour(hour,minute,second));   
  43.                    
  44.                    
  45.             }   
  46.             return flag;   
  47.         }   
  48.         public function validatorMonth(month:Number):Boolean{   
  49.             //月份必须小于12,   
  50.             if(month>12)   
  51.             {   
  52.                 Alert.show("月份必须小于12");   
  53.                 return false;   
  54.             }   
  55.             return true;   
  56.         }   
  57.         public function validatorDay(day:Number,month:Number,year:Number):Boolean{   
  58.             //日期必须小于31,如果是4,6,8,10,必须小于30,如果是闰年,2月份必须小于29   
  59.             if(day>31)   
  60.             {   
  61.                 Alert.show("日份必须小于31");   
  62.                 return false;   
  63.             }else  
  64.             {   
  65.                 if(month == 4||month == 6||month == 9||month == 10)   
  66.                 {   
  67.                     if(day>30)   
  68.                     {   
  69.                         Alert.show("日份必须小于30");   
  70.                         return false;   
  71.                     }   
  72.                 }   
  73.                 if(month == 2)   
  74.                 {   
  75.                     //判断选择的年是否为闰年   
  76.                     if((year%4==0 && year%100!=0)||(year%400==0))   
  77.                     {   
  78.                         if(day>29)   
  79.                         {   
  80.                             Alert.show("2月份必须小于29");   
  81.                             return false;   
  82.                         }   
  83.                     }else    
  84.                     {   
  85.                         if(day>28)   
  86.                         {   
  87.                             Alert.show("平年2月份必须小于28");   
  88.                             return false;   
  89.                         }   
  90.                     }   
  91.                 }   
  92.             }   
  93.             return true;   
  94.                
  95.         }   
  96.         public function validatorHour(hour:Number,minute:Number,second:Number):Boolean{   
  97.             //小时必须小于24,且当小时为24时,分钟和秒钟都应该是0   
  98.             if(hour>24)   
  99.             {   
  100.                 Alert.show("小时必须小于或者等于24");   
  101.                 return false;   
  102.             }else   if(hour==24)   
  103.             {   
  104.                 if(minute!=00 || second !=00)   
  105.                 {   
  106.                     Alert.show("当小时为24时,分秒必须都是0");   
  107.                     return false;   
  108.                 }   
  109.             }   
  110.             return true;   
  111.         }   
  112.     }   
  113. }  
package yiyou
{
	import mx.controls.Alert;

	public class GenDateValidator
	{
		public function GenDateValidator()
		{
//			validatorDate(str);
		}
		public function validatorDate(str:String):Boolean
		{
			var formatStr:RegExp=/^[1-9][0-9][0-9][0-9]年[0-1][0-9]月[0-3][0-9]日[0-2][0-9]:[0-5][0-9]:[0-5][0-9]$/;
			var flag:Boolean = false;
			/**
			 * 验证输入格式是否合法
			 * 验证的内容有格式是否为
			 * 1:xxxx年xx月xx日xx:xx:xx
			 * 2:月份是否为
			 **/
			
			if(formatStr.exec(str)==null){
				Alert.show("输入格式不合法");
			}else
			{
				
				//当小时为24小时的时候,分钟和秒钟都要为00
				var yearStr:String = str.substr(0,4);
				var monthStr:String = str.substr(5,2);
				var dayStr:String = str.substr(8,2);
				var hourStr:String=str.substr(11,2);//截取小时
				var minStr:String = str.substr(14,2);
				var secondStr:String = str.substr(17,2);
				
				var year:Number = parseInt(yearStr);
				var month:Number = parseInt(monthStr);
				var day:Number = parseInt(dayStr);
				var hour:Number = parseInt(hourStr);
				var minute:Number = parseInt(minStr);
				var second:Number = parseInt(secondStr);
				
				flag = (validatorMonth(month) && validatorMonth(month) && validatorDay(day,month,year) && validatorHour(hour,minute,second));
				
				
			}
			return flag;
		}
		public function validatorMonth(month:Number):Boolean{
			//月份必须小于12,
			if(month>12)
			{
				Alert.show("月份必须小于12");
				return false;
			}
			return true;
		}
		public function validatorDay(day:Number,month:Number,year:Number):Boolean{
			//日期必须小于31,如果是4,6,8,10,必须小于30,如果是闰年,2月份必须小于29
			if(day>31)
			{
				Alert.show("日份必须小于31");
				return false;
			}else
			{
				if(month == 4||month == 6||month == 9||month == 10)
				{
					if(day>30)
					{
						Alert.show("日份必须小于30");
						return false;
					}
				}
				if(month == 2)
				{
					//判断选择的年是否为闰年
					if((year%4==0 && year%100!=0)||(year%400==0))
					{
						if(day>29)
						{
							Alert.show("2月份必须小于29");
							return false;
						}
					}else 
					{
						if(day>28)
						{
							Alert.show("平年2月份必须小于28");
							return false;
						}
					}
				}
			}
			return true;
			
		}
		public function validatorHour(hour:Number,minute:Number,second:Number):Boolean{
			//小时必须小于24,且当小时为24时,分钟和秒钟都应该是0
			if(hour>24)
			{
				Alert.show("小时必须小于或者等于24");
				return false;
			}else	if(hour==24)
			{
				if(minute!=00 || second !=00)
				{
					Alert.show("当小时为24时,分秒必须都是0");
					return false;
				}
			}
			return true;
		}
	}
}


测试代码如下:

Java代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    
  3.                xmlns:s="library://ns.adobe.com/flex/spark"    
  4.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:yiyou="yiyou.*">   
  5.        
  6.     <fx:Script>   
  7.         <![CDATA[       
  8.             import mx.controls.Alert;   
  9.                
  10.             import yiyou.GenDateValidator;   
  11.                
  12.             protected function btnID_clickHandler(event:MouseEvent):void  
  13.             {   
  14.                 var str:String=dataFieldID.text;   
  15.                 var validator:GenDateValidator = new GenDateValidator();           
  16.                 var flag:Boolean = validator.validatorDate(str);   
  17.                 if(flag)   
  18.                 {   
  19.                     Alert.show("输入合法");   
  20.                     //处理步骤   
  21.                 }   
  22.                    
  23.             }   
  24.                
  25.         ]]>   
  26.     </fx:Script>   
  27.        
  28.     <fx:Declarations>   
  29.         <!-- 将非可视元素(例如服务、值对象)放在此处 -->   
  30.     </fx:Declarations>   
  31.     <yiyou:GenDateField x="239" y="100" id="dataFieldID">   
  32.            
  33.     </yiyou:GenDateField>   
  34.     <s:Button id="btnID" x="239" y="168" label="提交" click="btnID_clickHandler(event)"/>   
  35. </s:Application>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值