/*
Create
	Time：
		2005-08-31
	Modified：
		bugsharp
	Explain:
		数据验证函数集

*/
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	去除字符串前后空格；
参数：
	TrimStr：需要去除前后空格的字符串；
返回值：
	去除前后空格的字符串；
*/

function Trim(TrimStr)
{ 
	return TrimStr.replace(/(^\s+)|\s+$/g,"");
}
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断字符串是否为数字（格式：数字.数字）；
参数：
	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);
		}				
	}
	
}
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断数字是否是正整数；
参数：
	dateStr：需要判断的数字；
返回值：
	true：	正确；
	false：	错误；
*/ 
function IsInt(dateStr)
{
    
    var str_date = dateStr;
	var pattern = /^[-\+]?\d+$/;
	if(pattern.test(str_date))
	{
		if(parseInt(str_date)<32767)
		{
		return true;
		}
		else
		{
		
		return false; 
		}
	}
	else 
	{
		return false; 
	}  
    
}
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断是否为图片文件名；
参数：
	pm_ImageFileName：待判断的图片文件名及路径；
返回值：
	True：是图片名
	False：不是图片名
*/
function IsImageFileName(pm_ImageFileName)
{
	var pattern = /(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$/;
	if(pattern.test(pm_ImageFileName.toLowerCase()))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}
//--------------------------------------------------------------------------------------------------------------------------------
function IsFile(pm_FileName)
{
	var pattern = /(\.doc|\.xls|\.pdf)$/;
	if(pattern.test(pm_FileName.toLowerCase()))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}
//--------------------------------------------------------------------------------------------------------------------------------
function IsExcleFile(pm_FileName)
{
	var pattern = /(\.xls)$/;
	if(pattern.test(pm_FileName.toLowerCase()))
	{
		return(true);
	}
	else
	{
		return(false);
	}
} 
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断邮件地址是否正确；
参数：
	mailAddrStr：需要判断的邮件地址字符串；
返回值：
	true：	邮件地址正确；
	false：	邮件地址错误；
*/
function IsMailAddr(mailAddrStr)
{
	var email = mailAddrStr;
	var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	if(pattern.test(email))
	{
		return true;
	}
	else 
	{
		return false; 
	}
} 
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断电话号码是否正确；
参数：
	telStr：需要判断的电话号码字符串；
返回值：
	true：	正确；
	false：	错误；
说明：座机格式：区号-电话号码-分机，区号必须是3-4 位，电话号码必须是7-8位，分机是1-4位，手机必须是13开始的11位
*/
function IsTel(telStr)
{
	var tel = telStr;
	var pattern = /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;
	if(pattern.test(tel))
	{
		return true;
	}
	else 
	{
	    pattern = /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/;
		if(pattern.test(tel))
	    {
		  return true;
	     }
	    else 
	    {
	   
		return false; 
	    }
	}
} 
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	时间比较；
参数：
	StartDataTime：开始时间；
	EndDataTime：结束时间；
返回值：
	true：	开始时间小于结束时间；
	false：	开始时间大于等于结束时间；
*/
function DateTimeCompare(StartDataTime, EndDataTime)
{
	var DTS;
	var DTE;
	var reg;
	var r;	

	reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	
	r = StartDataTime.match(reg); 
	if(r==null)
	{
		return false; 
	}
	DTS = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 

	r = EndDataTime.match(reg); 
	if(r==null)
	{
		return false; 
	}
	DTE = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 	

	if(DTE > DTS)
	{
		return(true);
	}
	else
	{
		return(false);
	}
}
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断日期时间格式是否正确,例 2005-12-12 12:12:12；
参数：
	str：需要判断的日期时间；
返回值：
	true：	正确；
	false：	错误；
*/
function ValiDateTime(str)
{
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null)
	{
		return false; 
	}
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
} 
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	判断日期是否正确,年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; 
	} 	
}
//--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	检验密码是否合法，只包含数字和字母；
参数：
	strWord：用户输入密码；
返回值：
	true为合法，false为不合法；
*/

function IsPWValid(strWord)
{
	var pattern =/^[A-Za-z\d]+$/;
	if(pattern.test(strWord))
	{
 
		return true;
	}
	else
	{
	return false;
	}
} 
 //--------------------------------------------------------------------------------------------------------------------------------
/*
作用：
	检验密码个数不少于六位；
参数：
	strWord：用户输入密码；
返回值：
	true为合法，false为不合法；
*/

function IsPWNum(strWord,num)
{
	 if(strWord.length>=num)
	{
		return true;
	}
	else 
	{
		return false; 
	}
} 

/*
			正则表达式使用详解

1、较为常用的元字符包括： 
	+：“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次
	*：“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次
	?：“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
	\s：用于匹配单个空格符，包括tab键和换行符； 
	\S：用于匹配除单个空格符之外的所有字符；
	\d：用于匹配从0到9的数字；
	\w：用于匹配字母，数字或下划线字符；
	\W：用于匹配所有与\w不匹配的字符；
	. ：用于匹配除换行符之外的所有字符
	
2、可以精确指定模式在匹配对象中出现的频率：
	例：/jim{2,6}/	m可以出现2--6次

3、定位符（定位符用于规定匹配模式在目标对象中的出现位置）
	^：“^”定位符规定匹配模式必须出现在目标字符串的开头
	$：“$”定位符规定匹配模式必须出现在目标对象的结尾
	\b：\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
	\B：“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内，即匹配对象既不能作为目标字符串的开头，也不能作为目标字符串的结尾。
	
4、
	/[A-Z]/ 上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
	/[a-z]/ 上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
	/[0-9]/ 上述正则表达式将会与从0到9范围内任何一个数字相匹配。 

5、“()” 把字符串组合在一起。
	“()”符号包含的内容必须同时出现在目标对象中
	
6、“[^]”规定目标对象中不能存在模式中所规定的字符串

7、当用户需要在正则表达式的模式中加入元字符，并查找其匹配对象时，可以使用转义符“\”。
*/
//--------------------------------------------------------------------------------------------------------------------------------