﻿ /*判断是否是整型*/
function isInteger(sNum) 
{
	var	num
	num=new RegExp('[^0-9_]','')
	if (isNaN(sNum)) 
	{
		return false
	}
	else 
	{
		if (sNum.search(num)>=0) 
		{
			return false
		}
		else 
		{
			return true
		}
	}
}

//判断是否存在非法字符
function isIllegalChar(value)
{
    re=new RegExp("[\"\'\<\>\@\#\$\%\^\*\+\=]"); 
    if(re.test(value))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//判断EMAIL
function isMail(mail)
{
    //RegTest = new RegExp("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
    RegTest=new RegExp("^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z_]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,4})$"); 
    return RegTest.test(mail);
}
/*验证是否有效的邮政编码*/
function isValidZipCode(s)
{
	var reg = new RegExp('^[0-9]{6}$');
	if (s.search(reg) == -1)
		return false;
	
	return true;
}

/*验证是由有效的电子邮件地址*/
function isValidEmail(s)
{
	var reg1 = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9@._-]{3,}[a-zA-Z]$');
	var reg2 = new RegExp('[@.]{2}');
		
	if (s.search(reg1) == -1
			|| s.indexOf('@') == -1
			|| s.lastIndexOf('.') < s.lastIndexOf('@')
			|| s.lastIndexOf('@') != s.indexOf('@')
			|| s.search(reg2) != -1)
		return false;
		
	return true;
}

/*验证是否有效的移动电话号码*/
function isValidMobile(sMobile)
{		
	RegTest = new RegExp("^13[0-9]|^15[0-9]|^18[0-9][0-9]{8}$");
	
	if (sMobile.length != 11 && sMobile.length != 12 )
	{	
		return false;
	}
	
	if (sMobile.length == 12)
	{
		if (sMobile.substr(0,1) == 0)
		{	
		    sMobile = sMobile.substr(1,11);
		}
		else
		{	
		    return false;
		}
	}

	return RegTest.test(sMobile);		
}

/*验证是否有效的中国身份证号码*/
function isValidChinaIDCard(sNo)
{
    sNo = sNo.toString();
	if (sNo.length==18)
    {
		var a,b,c;
		if (!isInteger(sNo.substr(0,17)))
		{
		    return false;
		}
		
		a=parseInt(sNo.substr(0,1))*7+parseInt(sNo.substr(1,1))*9+parseInt(sNo.substr(2,1))*10;
		a=a+parseInt(sNo.substr(3,1))*5+parseInt(sNo.substr(4,1))*8+parseInt(sNo.substr(5,1))*4;
		a=a+parseInt(sNo.substr(6,1))*2+parseInt(sNo.substr(7,1))*1+parseInt(sNo.substr(8,1))*6;	
		a=a+parseInt(sNo.substr(9,1))*3+parseInt(sNo.substr(10,1))*7+parseInt(sNo.substr(11,1))*9;	
		a=a+parseInt(sNo.substr(12,1))*10+parseInt(sNo.substr(13,1))*5+parseInt(sNo.substr(14,1))*8;	
		a=a+parseInt(sNo.substr(15,1))*4+parseInt(sNo.substr(16,1))*2;
		b=a%11;
		
		if (b==2)
		{
			c=sNo.substr(17,1).toUpperCase();
		}
		else
		{
			c=parseInt(sNo.substr(17,1));
		}
		
		switch(b)
		{
			case 0: if ( c!=1 ) {return false;}break;
			case 1: if ( c!=0 ) {return false;}break;
			case 2: if ( c!="X") {return false;}break;
			case 3: if ( c!=9 ) {return false;}break;
			case 4: if ( c!=8 ) {return false;}break;
			case 5: if ( c!=7 ) {return false;}break;
			case 6: if ( c!=6 ) {return false;}break;
			case 7: if ( c!=5 ) {return false;}break;
			case 8: if ( c!=4 ) {return false;}break;
			case 9: if ( c!=3 ) {return false;}break;
			case 10: if ( c!=2 ){return false};
		}
	}
	else
	{
		if (!isInteger(sNo)) {return false;}	
	}
		
	switch(sNo.length){
		case 15: if (isValidDate(sNo.substr(6,2),sNo.substr(8,2),sNo.substr(10,2))) {return true;}
		case 18: if (isValidDate(sNo.substr(6,4),sNo.substr(10,2),sNo.substr(12,2))) {return true;}
		}
	return false;
}

/*
用途：检查输入字符串是否只由汉字、字母、/组成
*/
function isValidSpeciallyChar(string){
    var regu = "^[/a-zA-Z\u4e00-\u9fa5]+$";   
    var re = new RegExp(regu);
    if (re.test(string)) {
        return true;
    }
    else
    {
       return false;
    }
}

/*
用途：检查输入字符串是否只由汉字组成
*/
function isValidCharChina(string)
{
    var regu = "^[\u4e00-\u9fa5]+$";   
    var re = new RegExp(regu);
    if (re.test(string)) {
        return true;
    }
    else
    {
       return false;
    }
}

/*
用途：检查输入字符串是否只由汉字、字母、/组成
*/

function isValidCharEng(string)
{
   var regu = "^[a-zA-Z]+/[a-zA-Z]+$";   
     var re = new RegExp(regu);
    if (re.test(string)) {
        return true;
    }
    else
    {
       return false;
    }
}

//去除空格
function trim(s) { 
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); 
return (m == null) ? "" : m[1]; 
}

function isZInteger(string)
{//正整数
			var rule="^[0-9]+$";
			var re = new RegExp(rule);
			if (re.test(string)) {
                return true;
            }
            else
            {
                return false;
            }
}	


function jinwei1(theinput)
//保留2位 四舌五入
{
	var num;
	num=Math.round(theinput*100)/100;
	return num;
}

function jinwei2(theinput)
//保留到整数 四舌五入
{
	var num;
	num=Math.round(theinput);
	return num;
}



///////////////////////////////////日期相关
function isInteger(sNum) 
{
	var	num
	num=new RegExp('[^0-9_]','')
	if (isNaN(sNum)) 
	{
		return false
	}
	else 
	{
		if (sNum.search(num)>=0) 
		{
			return false
		}
		else 
		{
			return true
		}
	}
}



/*判断年份是否是闰年*/
function isLeapYear(iYear) 
{ 
    var undefined						
	if ( iYear != undefined && !isNaN(iYear) && iYear > 0 &&		
	       (iYear%4==0 && iYear%100 !=0 || iYear%400==0)   )		
	    return true												
	else
	    return false
}
		
/*判断是否有效的年月日*/
function isValidDate(iY, iM, iD) 
{ 
    var undefined									
    if ( iY != undefined && !isNaN(iY) && iY >=0 && iY<=9999 &&						
        iM != undefined && !isNaN(iM) && iM >=1   && iM<=12   &&					
        iD != undefined && !isNaN(iD) && iD >=1   && iD<=31  )  
    {					
        if (iY<50) 
            iY = 2000+iY; 
        else if (iY<100) 
            iY=1900+iY;						
        if (iM == 2  && (isLeapYear(iY)  && iD > 29 || !isLeapYear(iY) && iD>28) ||	
            iD == 31 && (iM<7 && iM%2==0 || iM>7 && iM%2==1) )							
	        return false																
        else	
            return true      
    }														
    else  
        return false 
}
															


/*判断是否有效的日期类型字符串(yyyy-mm-dd)*/
function isValidDateString(sDate) 
{
	var iYear, iMonth, iDay, iIndex

	var	reg
	reg = new RegExp('[^0-9-]','')
	if (sDate.search(reg) >= 0)
		return false;
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else 
	{
		iYear = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iYear) || iYear < 1900 || iYear > 2099 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else 
	{
		iMonth = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iMonth) || iMonth < 1 || iMonth > 12 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex >= 0 )
		return false;
	else 
	{
		iDay = parseFloat(sDate);
		if ( isNaN(iDay) || iDay < 1 || iDay > 31 )
			return false;
	}
	
	
	switch(iMonth) {
		case 4:
		case 6:
		case 9:
		case 11:
			if ( iDay > 30 )
				return false;
			else
				break;
		case 2:
			if ( ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) && iDay > 29 )
				return false;
			else if ( (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) && iDay > 28 )
				return false;
			else
				break;
		default:
	}
	return true;
}

function isDateString(sDate)
{	
    var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day

	if (arguments.length != 1) return false
	iaDate = sDate.toString().split("-")
	if (iaDate.length != 3) return false
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false

	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day=parseFloat(iaDate[2])
	
	if (isNaN(year) || isNaN(month) || isNaN(day)) return false
	
	if (year < 1900 || year > 2100) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
}

//日期格式化
function parseDate(sString, sInFormat) 
{						
  var sResult,undefined										
  if (sInFormat==undefined) sResult = formatDateString(sString,'M-D-YYYY')		
  else sResult = getDateString(sString, sInFormat,'M-D-YYYY')	
  var iDel1,iDel2,iY,iM,iD,sDelimiter;	
  if ( sResult != '' )	{										
		sDelimiter = getDateDelimiter(sResult);								
		iDel1 = sResult.indexOf(sDelimiter,0);     iDel2 = sResult.indexOf(sDelimiter,iDel1 + 1);		
		iY = sResult.substr(iDel2+1,sResult.length-(iDel2+1)); 
		iM = sResult.substr(0,iDel1);} 
		iD = sResult.substr(iDel1+1,iDel2-(iDel1+1)); 
  if ( sResult == '' )  return (new Date(1900,0,1))			
  else                  return (new Date(iY,iM-1,iD))  
}			

function formatDateString(sString, sOutFormat)
{ var sResult						
  sResult = getDateString(sString, 'YMD', sOutFormat)								
  if (sResult=='') sResult = getDateString(sString, 'MDY', sOutFormat)				
  if (sResult=='') sResult = getDateString(sString, 'DMY', sOutFormat)				
  return sResult }																	

function formatDate(dDate, sOutFormat){ var undefined			
  if (dDate == undefined) return ''							
  else return OutFormatDatePortion(dDate.getYear(), dDate.getMonth() + 1, dDate.getDate(), sOutFormat) }	

function isValidDateString1(sString, sInFormat) {								
   var sResult,undefined														
   if ( sInFormat == undefined) sResult = formatDateString(sString);	
   else  sResult = getDateString(sString, sInFormat);									
   if (sResult == '') return false;	  else   return true; }					
function isValidDateTime(sDateTime,sDateFormat,sTimeFormat)
{	var asDateTime = new Array()
	asDateTime = sDateTime.split(' ')
	if (asDateTime.length != 2) return false
	if (! isValidDateString1(asDateTime[0],sDateFormat)) return false
	if (! isValidTimeString(asDateTime[1],sTimeFormat)) return false
	return true
}

function isValidTimeString(sTime,sInFormat)
{	var aiTime = new Array()
	var sTimeFormat
	var undefined
	if (sInFormat==undefined) sTimeFormat = 'HHMMSS'
	else sTimeFormat = sInFormat.toString();
	sTime = sTime.toString()
	if (sTimeFormat.indexOf(':') > 0)
	{	aiTime = sTime.split(':');
		return isValidTime(aiTime);
	}
	else
	{	if (sTimeFormat.length != sTime.length) return false
		if (sTimeFormat.length == 4 || sTimeFormat.length == 6)
			aiTime[0] = sTime.substr(0,2)
			aiTime[1] = sTime.substr(2,2)
			if (sTimeFormat.length == 6) aiTime[2] = sTime.substr(4,2)
		else
			return false
	}
}

function isValidTime(aiTime)
{	if (aiTime.length == 2 || aiTime.length == 3)
	{	if (aiTime[0] < 0 || aiTime[0] > 23) return false
		if (aiTime[1] < 0 || aiTime[1] > 59) return false
		if (aiTime.length == 3)
			if (aiTime[2] < 0 || aiTime[2] > 59) return false
		return true
	}
	else
		return false
}

function getDateString(sString, sInFormat, sOutFormat, sDelimiter)
{	
  var undefined														
  var sResult=''														
  var sY, sM, sD														
  var iDml1, iDml2														
  if ( sString == undefined || sString.toString() == '' || sString.length < 6)    return sResult		
  else sString = sString.toString().toUpperCase()														
  if ( sDelimiter == undefined)   sDelimiter = ''														
  if ( sInFormat == undefined || sInFormat.toString() == '' )											
     { sInFormat = 'YMD';  if (sDelimiter=='') sDelimiter = getDateDelimiter(sString) ; }				
  else    { sInFormat = sInFormat.toUpperCase();														
			 if (sDelimiter == '')  sDelimiter = getDateDelimiter(sInFormat)							
			 if (sDelimiter == '')  sDelimiter = getDateDelimiter(sString)								
			 else sInFormat = sInFormat.replace(sDelimiter,'').replace(sDelimiter,'')					
            sInFormat = sInFormat.replace('YYYY','Y').replace('YYY','Y').replace('YY','Y').replace('MM','M').replace('DD','D')}			
  if (sDelimiter == '')   {																			
		if (sString.length ==8)  {																		
			eval('sY=sString.substr('+(sInFormat.indexOf('Y',0)*2)+',4)')								
	        eval('sString=sString.substring(0,'+(sInFormat.indexOf('Y',0)*2)+')+sString.substring('+(sInFormat.indexOf('Y',0)*2 + 4)+',sString.length)')				
			sInFormat = sInFormat.replace('Y','')      }												
		else if (sString.length ==6)      {																
			eval('sY=sString.substr('+(sInFormat.indexOf('Y',0)*2)+',2)')								
			eval('sString=sString.substring(0,'+(sInFormat.indexOf('Y',0)*2)+')+sString.substring('+(sInFormat.indexOf('Y',0)*2 + 2)+',sString.length)')				
			sInFormat = sInFormat.replace('Y','')	   }												
		else			      return sResult;															
	    eval('s'+sInFormat.substr(0,1) + '=sString.substr(0,2)')										
		eval('s'+sInFormat.substr(1,1) + '=sString.substr(2,2)')		   }							
  else        {																						
		iDel1 = sString.indexOf(sDelimiter,0);     iDel2 = sString.indexOf(sDelimiter,iDel1 + 1);		
		if (iDel1 == -1 || iDel2==-1) return sResult													
	    eval('s'+sInFormat.substr(0,1) + '=sString.substr(0,'+iDel1 + ')')								
		eval('s'+sInFormat.substr(1,1) + '=sString.substring('+(iDel1+1)+','+iDel2.toString()+')')		
		eval('s'+sInFormat.substr(2,1) + '=sString.substring('+(iDel2+1)+','+sString.length+')')  }		
  if (isValidDate(sY,sM,sD)) sResult = outFormatDatePortion(sY,sM,sD,sOutFormat)						
  return sResult    
}																					
										

function getDateDelimiter(sFormatString){ var undefined				
  if (sFormatString == undefined)            return  ''				
  if (sFormatString.indexOf('-',0) > 0)		 return  '-'			
  else if (sFormatString.indexOf('/',0) > 0) return  '/'				
  else if (sFormatString.indexOf('.',0) > 0) return  '.'				
  else									     return ''	}				

function outFormatDatePortion(sY,sM,sD,sOutFormat) 
{ var undefined		
  var sDelimiter, sResult												
  var iY,iM,iD, i1,i2,i3,sU=''											
  if ( sOutFormat == undefined || sOutFormat.toString() == '' )		
	{ sOutFormat = 'MDY';  sDelimiter = new Array('','-','-','');		
	  if (sY.toString().length == 2) { if ( parseInt(sY)<50 ) sY = '20'+sY; else sY = '19'+sY; } }	
  else   { sOutFormat = sOutFormat.toUpperCase()						
       if (sOutFormat.indexOf('YYYY') != -1 && sY.toString().length == 2) { if ( parseInt(sY)<50 ) sY = '20'+sY; else sY = '19'+sY; }	
	    if (sOutFormat.indexOf('MM') != -1 && sM.toString().length == 1) sM = '0'+sM													
		if (sOutFormat.indexOf('DD') != -1 && sD.toString().length == 1) sD = '0'+sD													
	    sOutFormat = sOutFormat.replace('YYYY','Y').replace('YYY','Y').replace('YY','Y').replace('MM','M').replace('DD','D')			
       iY = sOutFormat.indexOf('Y'); iM = sOutFormat.indexOf('M'); iD = sOutFormat.indexOf('D')										
		{i1=Math.min(iY,Math.min(iM,iD)); i2=(iY>iM)?Math.min(iY,Math.max(iM,iD)):(Math.min(iM,Math.max(iD,iY)));  i3=Math.max(iY,Math.max(iM,iD));}				
       if (i3 == -1) return ''																											
        else if (i2==-1)  {																											
			sDelimiter = new Array(sOutFormat.substring(0,i3),'','',sOutFormat.substring(i3+1,sOutFormat.length))						
			sOutFormat = 'UU'+sOutFormat.substr(i3,1)    }																				
        else if (i1==-1) {																																					
	       sDelimiter = new Array(sOutFormat.substring(0,i2),'',sOutFormat.substring(i2+1,i3),sOutFormat.substring(i3+1,sOutFormat.length))									
			sOutFormat = 'U'+sOutFormat.substr(i2,1)+sOutFormat.substr(i3,1)    }																							
        else {																																								
			sDelimiter = new Array(sOutFormat.substring(0,i1),sOutFormat.substring(i1+1,i2),sOutFormat.substring(i2+1,i3),sOutFormat.substring(i3+1,sOutFormat.length))		
			sOutFormat = sOutFormat.substr(i1,1)+sOutFormat.substr(i2,1)+sOutFormat.substr(i3,1)    }	}																	
  eval("sResult='"+ sDelimiter[0] +"'+s"+sOutFormat.substr(0,1)+"+'"+sDelimiter[1]+"'+s"+sOutFormat.substr(1,1)+"+'"+sDelimiter[2]+"'+s"+sOutFormat.substr(2,1)+"+'"+sDelimiter[3]+"'" )	
  return sResult;  
  }								







  






