﻿
/*****************************************************
**	功能说明:	对输入数据常见的验证

**        创 建 人:	北斗星
**	创建时间:	2007.7.23
*****************************************************/



//========================================================================
//功能：判断某输入控件的值是否为空
//objName	---- 需要判断其值的控件

//返回：true 	---- 验证不为空//	   false	---- 验证为空
//========================================================================
function check_null(tCHAR)			
{
	thisvalue=tCHAR.value;
	//alert(thisvalue);
	aa=false;
	
	for(iINT=0;iINT<thisvalue.length;iINT++)
		{          	
		if(thisvalue.substring(iINT,iINT+1)!=" ")	
			{
				aa=true;
			}
		}
		
	if(aa==false || thisvalue.length<1)
	{
		alert("Please input data!!!");
		tCHAR.focus();
		return false;
	}

	return true;		
}//功能说明:判断输入是否为数字
//参    数: s--传入的字串
//返 回 值: boolean型，　true, false
function isInt(s)
{
	s = new String(s);
	if(s.match(/[^0-9]/g)!=null)
		return false;
	else
		return true;
}




//========================================================================
//功能：判断一个数是否为正整数
//参数：strNum	---- 需要判断的字符串
//返回：true		---- 整数 
//	   false	---- 非整数//========================================================================
function IsIntNum(strNum)
{
	var strCheckNum = strNum + "";
	if(strCheckNum.length < 1)									//空字符串
		return false;
	else if(isNaN(strCheckNum))									//不是数值
		return false;
	else if(parseInt(strCheckNum) < 1)							//不是正数
		return false;	
	else if(parseFloat(strCheckNum) > parseInt(strCheckNum))	//不是整数	
		return false;
	
	return true;
}


//========================================================================
//功能：判断一个数是否为正数
//参数：strNum	---- 需要判断的字符串
//返回：true		---- 整数 
//	   false	---- 非整数//========================================================================
function IsTrueNum(strNum)
{
	var strCheckNum = strNum + "";
	if(strCheckNum.length < 1)									//空字符串
		return false;
	else if(isNaN(strCheckNum))									//不是数值
		return false;
	else if(parseInt(strCheckNum) < 1)							//不是正数
		return false;
	
	return true;
}


//========================================================================
//功能：判断某输入控件的值是否国内邮政编码
//objName	---- 需要判断其值的控件

//返回：true		---- 验证通过 
//	   false	---- 验证不通过
//========================================================================
function check_postcode(objName)
{
	var regExpInfo = /[1-9]{1}(\d+){5}/;
	if( objName.value.search(regExpInfo) >= 0 )
	{
		return true;
	}
	else
	{
		alert ("输入内容不是有效的邮政编码格式!");
		objName.value="";
		return false;
	}
}


//========================================================================
//功能：判断某输入控件的值是否国内电话（固定和手机）

//objName	---- 需要判断其值的控件

//返回：true		---- 验证通过 
//	   false	---- 验证不通过
//========================================================================
function check_phone(objName)
{
	if(objName.value == '')
	{
		return true;
	}
	var regExpInfo = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;
	if( objName.value.search(regExpInfo) >= 0 )
	{
		return true;
	}
	else
	{
		alert ("输入内容不是有效的电话号码格式!");
		objName.value="";
		return false;
	}
}


//========================================================================
//功能：判断某输入控件的值是否EMail地址

//objName	---- 需要判断其值的控件

//返回：true		---- 验证通过 
//	   false	---- 验证不通过
//========================================================================
function check_email(objName, obj_Input)
{
	var regExpInfo = /(^[\w-]+@[\w-]+\.[A-Za-z0-9]{2,}$)|(^[\w-]+@[\w-]+\.[A-Za-z0-9]+\.[A-Za-z0-9]{2,}$)/;
    if( objName.value.search(regExpInfo) >= 0 )
	{
		return true;
    }
	else
	{
		alert ("输入内容不是有效的email格式!");
		objName.value="";
		return false;
    }
}


//========================================================================
//功能：判断某输入控件的值是否含有非法字符
//objName	---- 传入的参数值
//返回：true		---- 验证合法
//	   false	---- 验证非法
//========================================================================

function CheckSpecialChar(strSource)
{
	var intIndex = -1;	//没找到此字符，返回-1

	var regExpInfo = /&/;
	intIndex = strSource.search(regExpInfo);

	if(intIndex == - 1) 
	{
		regExpInfo = /</;
		intIndex = strSource.search(regExpInfo);
	}

	if(intIndex == - 1) 
	{
		regExpInfo = />/;
		intIndex = strSource.search(regExpInfo);
	}

	if(intIndex == - 1) 
	{
		regExpInfo = /"/;
		intIndex = strSource.search(regExpInfo);
	}

	if(intIndex == - 1) 
	{
		regExpInfo = /'/;
		intIndex = strSource.search(regExpInfo);
	}

	if(intIndex == - 1) 
	{
		regExpInfo = /;/;
		intIndex = strSource.search(regExpInfo);
	}
	
	if(intIndex == - 1) 
	{
		regExpInfo = /\|/;
		intIndex = strSource.search(regExpInfo);
	}
	
	if(intIndex == - 1) 
	{
		regExpInfo = /\//;
		intIndex = strSource.search(regExpInfo);
	}
	
	if(intIndex == - 1) 
	{
		regExpInfo = /\\/;
		intIndex = strSource.search(regExpInfo);
	}
	
	if(intIndex == - 1)
	{
		return true;
	}
	else
	{
		return false;
	}
}


//功能说明：判断输入是否能通过ip地址检测

//参    数：s－－传入的字符串

//返 回 值：如果为非法ip地址则给出提示信息
function isIpAddr(s)
{
    //ip检测
    s = coder(s);
    var ipReg =/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
    if(!ipReg.test(s))
    {
       return "ip非法，请重新输入（正确示例：168.168.168.168）";
    }
    return "";
}


//功能说明：判断输入是否能通过url地址检测

//参    数：s——传入的字符串

//返 回 值：如果为非法url地址则给出提示信息
function isURL(s)
{
    //url检测
      s = coder(s);
       var urlReg = /^http:\/\/[\w\/\.-]+/g;   
       if(!urlReg.test(s))
       {
          return "Http地址非法，请重新输入（正确示例：http://ex.com)";
       }
       return "";
}


//功能说明：判断输入是否能通过文件目录地址检测

//参    数：s——传入的字符串

//返 回 值：如果为非法文件目录地址则给出提示信息
function isPath(s)
{
    //文件目录检测
       s = coder(s);
      var fileReg =/^((([a-zA-Z]:)|(\\{2}((((1?\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((1?\d{1,2})|(2[0-4]\d)|(25[0-5]))))|(\\{2}[^\.\\]+?))(\\|$))(([^\\/:*?""<>|()]{1,255}\\?)+)?$/;
       if(!fileReg.test(s))
         return "路径非法，请重新输入（正确示例：d:\\， \\\\Dpk\\T c\\， E:\\reference\\h101\\， \\\\be\\projects$\\Wield\\Rff\\，\\\\192.168.16.33\s\）";
       return ""; 
}


//功能说明：判断输入是否能通过本地文件目录地址检测

//参    数：s——传入的字符串

//返 回 值：如果为非法文件目录地址则给出提示信息

function isLocalPath(s)
{
   s=coder(s);
  // var fileReg=/ ^[A-Za-z]:\\([^"*/:?|<>\\.\x00-\x20]([^"*/:?|<>\\\x00-\x1F]*[^"*/:?|<>\\.\x00-\x20])?\\)*$/;
   var fileReg=/^(?!.*?\\\s+(?:\\|$))(?!.*?\s+(?:\\|$))(?!(\\?|[a-zA-Z]:)$)(?:[a-zA-Z]:)?(?:\\(?!\s+)[^\\/:*?"<>|]{1,255})*\\?$/;

   if(!fileReg.test(s))
     return "路径非法，请重新输入（正确示例：d:\\， E:\\reference\\h101\\，\\s\\ss\\,\\s\\ss）";
   return "";
}

//功能说明：判断输入是否能通过日期验证


//参    数：vtext——传入的日期输入值

//返 回 值：true 输入值为日期类型
//   	 	false输入值不为日期类型function checkDate(vtext)
{
	if (vtext!=null)
	{
		var reDate=/\d{4}-(\d{2}|\d{1})-(\d{2}|\d{1})/;
		var str = vtext.value.replace(" ","");
		if ((str !="")&&(!reDate.test(str)))
		{
			alert("必须为日期型！");
			vtext.focus();
			return false;
		}
	}
}


//功能说明：判断输入是否能通过日期时间验证


//参    数：vtext——传入的日期输入值

//返 回 值：true 输入值为日期时间类型
//   	 	false输入值不为日期时间类型function CheckDateTime(vtext)
{
    dtReg=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/;
	if(dtReg.test(vtext))
	  return true;
	else
	  return false;
}


function Trim(vtext)
{
return vtext.replace(/(^\s*)|(\s*$)/g, ""); 
}
