
/*
	Time：
		2005-06-06
	Code：
		胡道广
	注释:
		一些数据验证的JS方法.
*/



//---------------------------------------------
/*
作用：
	去除字符串前后空格；
参数：
	TrimStr：需要去除前后空格的字符串；
返回值：
	去除前后空格的字符串；
*/
function Trim(TrimStr)
{
 
	return TrimStr.replace(/(^\s+)|\s+$/g,"");
}


//---------------------------------------------
/*
作用：
	判断字符串是否为a-z,A-Z，0-9及下划线；
参数：
	strPM：字符串；
返回值：
	True：是字符串
	False：不字符串
*/
function IsCharacter(strPM)
{
   var pattern = /^[\w_]+$/;
   
   if( pattern.test(strPM))
   {
		return (true);
   }
   else
   {
		return (false);
   }
}
//---------------------------------------------
/*
作用：
	判断字符串是否为数字（格式：数字.数字）；
参数：
	pm_number：数字字符串；
返回值：
	True：是数字
	False：不是数字
*/
function IsNumber(pm_number)
{

	var  pattern = /^[-\+]?\d+$/;

	if ( pattern.test(pm_number) )
	{
		return(true);
	}
	else
	{
		pattern = /^[-\+]?\d+[\.]\d+$/;
		if(pattern.test(pm_number))
		{
			return(true);
		}
		else
		{
			return(false);
		}				
	}
}
function IsPlus(pm_number)
{

	var  pattern = /^\d+$/;

	if ( pattern.test(pm_number) )
	{
		return(true);
	}
	else
	{
		pattern = /^\d+[\.]\d+$/;
		if(pattern.test(pm_number))
		{
			return(true);
		}
		else
		{
			return(false);
		}				
	}
}
function IsInt(pm_number)
{

	var  pattern = /^\d+$/;

	if ( pattern.test(pm_number) )
	{
		return(true);
	}
	else
	{
		return(false);
			
	}
}

//---------------------------------------------
/*
作用：
	判断邮件地址是否正确；
参数：
	mailAddrStr：需要判断的邮件地址字符串；
返回值：
	true：	邮件地址正确；
	false：	邮件地址错误；
*/
function IsMailAddr(mailAddrStr)
{
	var email = mailAddrStr;
	var pattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	if(pattern.test(email))
	{
		return true;
	}
	else 
	{
		return false; 
	}
} 
//---------------------------------------------
/*
作用：
	判断日期是否正确,年1900-2059；
参数：
	telStr：需要判断的日期；
返回值：
	true：	正确；
	false：	错误；
	
说明：可以验证大小月、平年、闰年,正确格式yyyy-mm-dd或yyyy-m-d
*/
function IsDate(dateStr)
{
	 var str_date = dateStr;
	//var pattern = /^[1-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]/;
	//var pattern = /^((19\d{2})|(20[0-5]{1,1}[0-9]{1,1}))([-./])(([0-0]{1,1}[0-9]{1,1})|([1-1]{1,1}[0-2]{1,1})|([0-9]{1,1}))([-./])(\d{1,2})$/
    var pattern = /^((19\d{2})|(20[0-5]{1,1}[0-9]{1,1}))(-)(([0-0]{1,1}[1-9]{1,1})|([1-1]{1,1}[0-2]{1,1})|([1-9]{1,1}))(-)(([0-0]{1,1}[1-9]{1,1})|([1-2]{1,1}[0-9]{1,1})|([1-9]{1,1})|30|31)$/;

	if(pattern.test(str_date))
	{
       var year = parseInt(dateStr.substr(0,4));
       
       var temp1=dateStr.indexOf("-");
       var temp2=dateStr.lastIndexOf("-");
         
       
       var month=parseInt(dateStr.substr(temp1+1,temp2-temp1-1));
       
       var day=parseInt(dateStr.substr(temp2+1,dateStr.length-1-temp2));
       if(dateStr.substr(temp1+1,temp2-temp1-1)=="08")
       {
       month=8;
       }
       if(dateStr.substr(temp1+1,temp2-temp1-1)=="09")
       {
      month=9;
       } 
        if(dateStr.substr(temp2+1,dateStr.length-1-temp2)=="08")
       {
     day=8;
       }
        if(dateStr.substr(temp2+1,dateStr.length-1-temp2)=="09")
       {
      day=9;
       } 
      //window.alert(month);
         //window.alert(day);
            
       switch(month)
        {
           case 1:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
          case 2://判断闰年与平年
           {
           
              if((((year%4)==0)&&((year%100)!=0))||((year%400)==0))
               {
                  if(day>29)
                   {
                      return false;
                   }
                  else
                   {
                      return true;
                   }
               }
               else
               {
                   if(day>28)
                   {
                      return false;
                   }
                  else
                   {
                      return true;
                   }
               
               }
             break;
           }
           case 3:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 4:
           {
             if(day>30)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 5:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 6:
           {
             if(day>30)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 7:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 8:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 9:
           {
             if(day>30)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 10:
           {
             if(day>31)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 11:
           {
             if(day>30)
             {
               return false;
             }
             else
             {
                return true;
             }
             break;
           }
           case 12:
           {
             if(day>31)
             {
                     
               return false;
             }
             else
             {
                    
                return true;
             }
             break;
           }
	    }
	}
	else 
	{
		return false; 
	} 	
}