// 提示信息
var warnInputFeifa = "输入非法！";
var warnInputNotNull = "输入不能为空！";
var warnLengthNotBeyond= "输入字符长度不应超过";
var warnBigDecimalLimit= "整数和小数部分长度不应超过";
var warnEmailFormatError = "EMail格式不对！";
var warnNoLessthanZero = "输入不能小于零！";
var warnDateFormatError ="日期格式错误！";
var warnAllSpaceError="不能全为空格！";
var warnNameexistCodenotexist ="名称非空代码为空！";
var warnStartdateMorethanEnddate ="起始日期不应大于中止日期！";

function check(reg,str){
	if (reg.test(str)){
		 return true;
		}
	   return false;
	}


function checkCharOrNum(str){
	var reg = /^\w*$/;
	while(str.indexOf(' ')>0){
		str = str.replace(' ','');
	}
	return check(reg,str);
 }
 

function isTel(s)
{
//var patrn=/^[+]{0,1}(\d){0,3}[ ]?([-]?(\d){1,12})+$/;
var patrn=/^[+]{0,1}(\d){0,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}


function isMobil(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}

function isPostalCode(s)
{
//var patrn=/^[0-9]{3,12}$/;
var patrn=/^[0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}

/*
 */
function checkBigDecimal(bitNumBefore,bitNumAfter,str){
    //var patternStrTest = '/(^\\d{1,' + bitNumBefore + '}\\.\\d{1,' + bitNumAfter + '}$)|(^\\d{1,' + bitNumBefore +'}$)/'; 
    //var patternStrStan = /(^\d{1,10}\.\d{1,3}$)|(^\d{1,10}$)/; 
	// var pattern = patternStr.substring(1,patternStr.length-1);
	//alert( "patternStrTest--"+patternStrTest+"  length--"+patternStrTest.length
	 //     +"\npatternStrStan--"+patternStrStan+"  length--"+patternStrStan.length);

	//return patternStrTest.test(str);
	
}

// 
function check_isBigDecimal(bitNumBefore,bitNumAfter,ele,info){
	if(!checkBigDecimal(bitNumBefore,bitNumAfter,check_getValue(ele)) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

//^[\u4e00-\u9fa5]+$
//校验是否有中文
//function checkIsChinese(str){
//    //如果值为空，通过校验
//    if (str == "")
//        return true;
//    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])* $/gi;
//    if (pattern.test(str))
//        return true;
//    else
//        return false;
//}
function checkIsChinese(ele) {
	var str = ele.value;
	for(var i=0;i<str.length;i++){
		var ch = str.charCodeAt(i);
		if(!(ch<0X4E00||ch>0X9FA5)){
			alert("输入非法！不能有中文");
			ele.focus();
			return false;
		}
	}
	return true; 
}


// ??4???(??:????)
// 
function check4BitNum(str){
	// 
	var pattern = /^\d{4}$/;
	return pattern.test(str);
}

// 
function check_is4BitNum(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(!check4BitNum( eleValue ) ){
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}


/*

function check_isCode(ele,info){
	
	if(!checkCharOrNum( check_getValue(ele) ) ){
	    //alert(info);
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/


function check_isCode(ele){
	
	if(!checkCharOrNum( check_getValue(ele) ) ){
	    
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
} 


function check_isCodeType(lenMax,ele){
	var eleValue = check_getValue(ele);
	// ??????
	if( !check_notEmptyValue( eleValue ) ){
	    alert(warnInputNotNull);
		ele.focus();
	    return false;
	}
	// ??????(0-9a-zA-Z_)
	if(!checkCharOrNum( eleValue ) ){
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}
	// ????????????lenMax
	if( !check_Real_maxLenValue(lenMax, eleValue ) ){
	    alert(warnLengthNotBeyond + lenMax +"！");
		ele.focus();
	    return false;
	}

		return true;
		
} 

/*
// ??????????????????????false
// ??1(2???)
function check_isIncludingChinese(ele,info){
	if(!check_isIncludingChineseValue( check_getValue(ele) ) ){
	    // alert(info);
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/


function check_isIncludingChinese(ele){
	if(!check_isIncludingChineseValue( check_getValue(ele) ) ){
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}


function check_isTel(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(!isTel(eleValue) ){
	    // alert(info);
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_isPostalCode(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(!isPostalCode(eleValue) ){
	    // alert(info);
	    alert(warnInputFeifa);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
function check_isIncludingChineseValue(str){
	if(str==null || str==''){
		return true;
	}

  	var i;
  	for (i=0;i<str.length;i++)
  	{
    	if (str.charCodeAt(i)>255) return false;
  	}
  	return true;
}


function getRealLength(str)
{
  var len;
  var i;
  len = 0;
  for (i=0;i<str.length;i++)
  {
    if (str.charCodeAt(i)>255) len+=2; else len++;
  }
  return len;
}

function check_Real_maxLenValue(len,str){
	if(str==null || str==''){
		return true;
	}
	//alert(getRealLength(str));	
	if(getRealLength(str)>len) return false;

	return true;
}

/*

function check_real_maxLen(lenMax, ele,info){
	if( !check_Real_maxLenValue( lenMax, check_getValue(ele) ) ){
	    alert(info);
	    //alert(+ lenMax +"!");
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/


function check_real_maxLen(lenMax, ele){
	if( !check_Real_maxLenValue( lenMax, check_getValue(ele) ) ){
	    alert(warnLengthNotBeyond+ lenMax +"！");
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_real_maxLenWithouInfo(lenMax, ele){
	if( !check_Real_maxLenValue( lenMax, check_getValue(ele) ) ){
	    //alert(warnLengthNotBeyond+ lenMax +"！");
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function checkRealMaxDecLenValue(lenInt,lenDec,str){
	if(str==null || str==''){
		return true;
	}
	var isDec = str.indexOf(".");
	var factLen = getRealLength(str);
	if (isDec==-1){	 
	  if(factLen>lenInt) return false;
	}else{
	  //decimal part
	  var decPartLen = str.substring(isDec+1).length;
	  //int part
	  var intPertLen = str.substring(0,isDec).length;	  
	  if (intPertLen>lenInt || decPartLen>lenDec) return false;	  	  
	}
	
	return true;
}

/*
function checkRealDecMaxLen(lenInt,lenDec, ele,info){
	if( !check_isNumber(ele, warnInputFeifa) ) {
	    	 return false;
	 }
	if( !checkRealMaxDecLenValue( lenInt,lenDec, check_getValue(ele) ) ){
	    // alert(info);
	    alert(warnBigDecimalLimit+":(" + lenInt + "," + lenDec + ")" );
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/


function checkRealDecMaxLen(lenInt,lenDec,ele){
	if( !check_isNumber(ele, warnInputFeifa) ) {
	    	 return false;
	 }
	
	/*if (!checkBigOne(ele)){
	   alert(warnNoLessthanZero);
	   ele.focus();
	   return false;
	}*/
	
	if( !checkRealMaxDecLenValue( lenInt,lenDec, check_getValue(ele) ) ){
	    alert(warnBigDecimalLimit+":(" + lenInt + "," + lenDec + ")" );
		ele.focus();
	    return false;
	}
		return true;
	
}

//===========================================================
function checkBigOne(ele){
   var iStr = parseFloat(ele.value);
   if (!isNaN(iStr)&&iStr<0)
     return false;
   return true; 
}

function check_notEmptyWithoutInfo(ele){
	if( !check_notEmptyValue( check_getValue(ele) ) ){
	    //alert(info);
	    //alert(warnInputNotNull);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
function check_notEmptyWithInfo(ele,info){
	if( !check_notEmptyValue( check_getValue(ele) ) ){
	    alert(info);
	    //alert(warnInputNotNull);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

/*
function check_notEmpty(ele,info){
	alert("check_notEmpty(ele,info)");
	if( !check_notEmptyValue( check_getValue(ele) ) ){
	    alert(info);
	    //alert(warnInputNotNull);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/


function check_notEmpty(ele){
	//alert("check_notEmpty(ele)");
	if( !check_notEmptyValue( check_getValue(ele) ) ){
	    alert(warnInputNotNull);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}


function checkDateStr(str){
	var pattern = /^\d{4}-((0?[1-9])|(1[0-2]))-((0?[1-9])|([12][0-9])|(3[0-1]))$/;
	return pattern.test(str) ;
}

/*
function check_isDate(ele,info){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(!checkDateStr( eleValue ) ){
	    alert(warnDateFormatError);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/

function check_isDate(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(!checkDateStr( eleValue ) ){
	    alert(warnDateFormatError);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}



function checkAllSpaceStr(str){
	// \s unicode???
	var pattern = /^\s+$/;
	return pattern.test(str) ;
}


function check_isNOTAllSpace(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) return true;
	if(checkAllSpaceStr( eleValue ) ){
	    alert(warnAllSpaceError);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

 
function check_isNotEmptyOrNotAllspace(ele){
	var eleValue = check_getValue(ele);
	if(eleValue == null || eleValue == "" ) {
		alert(warnInputNotNull);
		ele.focus();
	    return false;
	} 
	if(checkAllSpaceStr( eleValue ) ){
	    alert(warnAllSpaceError);
		ele.focus();
	    return false;
	}
	
	return true;
}


function check_isEmailValue(str){
	if(str==null || str==''){
		return true;
	}
	
	if(str == null) return false;
	   var i=str.length;
	 var temp = str.indexOf('@');
	 var tempd = str.indexOf('.');
	 if (temp > 1) {
	  if (tempd > temp){
	     return true;
	  }
	 }
	 return false;
}
//===========================================================================
/*
function check_isEmail(ele,info){
	if( !check_isEmailValue( check_getValue(ele) ) ){
	    //alert(info);
	    alert(warnEmailFormatError);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/

function check_isEmail(ele){
	if( !check_isEmailValue( check_getValue(ele) ) ){
	    alert(warnEmailFormatError);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function checkNameExistCodeNot(form1,nameInput,codeInput){
   if (form1.elements[nameInput].value.length > 0 && form1.elements[codeInput].value.length==0){	     
         alert(warnNameexistCodenotexist);
         form1.elements[codeInput].focus();
	     return false;   
    }else{
       return true;
    }
}

function checkNumberNotFu(ele,info){
        if (ele.value==null || ele.value==''){
          return true;
        }        
        try{
          tmp = parseInt(ele.value);         
          if(tmp>=0){
            return true;
          }else{
            alert(info);
            ele.focus();
            return false;
          }
        }catch(e){
           alert(info);
           ele.focus();
           return false;
        }
      }
      
 function chkDate(sDate1,sDate2){
	if((sDate1 != '') && (sDate2 != '') ){
	var r1 = sDate1.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r1==null){
		//alert(warnDateFormatError);
		return false;
	}
	var r2 = sDate2.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r2==null){
		//alert(warnDateFormatError);
		return false;
	}
	var d1 = new Date(r1[1], r1[3]-1, r1[4]);
	var d2 = new Date(r2[1], r2[3]-1, r2[4]);
	if(d1>d2){
		//alert(warnStartdateMorethanEnddate);
		return false;
	}
	}
	if(sDate1 != '' && sDate2 == ''){
		var r1 = sDate1.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
		if(r1==null){
			//alert(warnDateFormatError);
			return false;
		}
	}
	if(sDate1 == '' && sDate2 != ''){
		var r2 = sDate2.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
		if(r2==null){
			//alert(warnDateFormatError);
			return false;
		}
	}
	return true;
//var d= new Date(r[1], r[3]-1, r[4]); 
//return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

	function chkDateTime(sDate1,sDate2){
		var patt = /^([1-9][0-9]{3})-(0?[1-9]|1[0|1|2])-(0?[1-9]|[1|2][0-9]|3[0|1])\s(0?[1-9]|1[0-9]|2[0-3]):(0?[0-9]|[1|2|3|4|5][0-9])$/;
		if((sDate1 != '') && (sDate2 != '') ){
		var r1 = sDate1.match(patt); 
		if(r1==null){
			//alert(warnDateFormatError);
			return false;
		}
		var r2 = sDate2.match(patt); 
		if(r2==null){
			//alert(warnDateFormatError);
			return false;
		}
		//alert(r1);
		//alert(r1[1]+"|"+(r1[2]-1)+"|"+r1[3]+"|"+r1[4]+"|"+r1[5]);
		var d1 = new Date(r1[1], r1[2]-1, r1[3], r1[4], r1[5], "0");
		var d2 = new Date(r2[1], r2[2]-1, r2[3], r2[4], r2[5], "0");
		//alert("*****"+d1>d2);
		if(d1>d2){
			//alert(warnStartdateMorethanEnddate);
			return false;
		}
		}
		if(sDate1 != '' && sDate2 == ''){
			var r1 = sDate1.match(patt); 
			if(r1==null){
				//alert(warnDateFormatError);
				return false;
			}
		}
		if(sDate1 == '' && sDate2 != ''){
			var r2 = sDate2.match(patt); 
			if(r2==null){
				//alert(warnDateFormatError);
				return false;
			}
		}
		return true;
	}

// JavaScript Document
function check_getValue(ele){
	if(ele.type != 'select-one'){
		return ele.value;
	}else{
			var opsArr = ele.options;
			for(var i=0;i<opsArr.length;i++){
				if(opsArr[i].selected == true){
					return opsArr[i].value;
				}
			}
			return null;
	}
}


function check_notEmptyValue(str){
	if(str==null || str==''){
	  return false;	
	}else{
	  return true;
	}
}


/* 这个校验日期的方法不要了
function check_isDateValue(str){
	if(str==null || str==''){
		return true;
	}
	//alert(str.length);
	if(str.length != 10) return false;
	return true;
}
function check_isDate(ele,info){
	if( !check_isDateValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
*/

// 只包含数字 0123456789
function check_isPureInt(ele,info){
	if( !check_isPureIntValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_isPureIntValue(str){
	 
	 if (str==null || str=='')
	  return true;
	  
     var i,j,strTemp;
	 strTemp="0123456789";
  
	 for (i=0;i<str.length;i++){
		  j=strTemp.indexOf(str.charAt(i)); 
		  if (j==-1) {
		  //˵�����ַ�������
		   return false;
		  }
	 }
	 //˵��������
	 return true;

}

function check_isIntValue(str){
	 
	 if (str==null || str=='')
	  return true;
	  
     var i,j,strTemp;
	 strTemp="-0123456789";
  
	 for (i=0;i<str.length;i++){
		  j=strTemp.indexOf(str.charAt(i)); 
		  if (j==-1) {
		  //˵�����ַ�������
		   return false;
		  }
	 }
	 //˵��������
	 return true;

}


// 包含 -0123456789
function check_isInt(ele,info){
	if( !check_isIntValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_isIPValue(str){
	if(str==null || str==''){
		return true;
	}
	
	
	return true;
}
function check_isIP(ele,info){
	if( !check_isIPValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}


function check_isNumberValue(str){
	if(str==null || str==''){
		return true;
	}
	var i,j,strTemp;
	 strTemp="-0123456789.";
	   
	 for (i=0;i<str.length;i++){
		  j=strTemp.indexOf(str.charAt(i)); 
		  if (j==-1) {
		  //˵�����ַ�������
		   return false;
		  }
	 }
	 //˵��������
	 return true;

}

//is not two dot
//true is one or zero dot
//false is bigger than one 
function isOneOrZero(ele){
      i1 =  ele.value.indexOf('.');
	  i2 =  ele.value.lastIndexOf('.');
	  return (i1==i2);	    
}

function check_isNumber(ele,info){     
	//if( !isOneOrZero(ele) || !check_isNumberValue( parseFloat(check_getValue(ele)) ) ){
	if( !isOneOrZero(ele) || !check_isNumberValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_maxLengthValue(len,str){
	if(str==null || str==''){
		return true;
	}
	if(str.length>len) return false;

	return true;
}
function check_maxLength(len, ele,info){
	//��󳤶ȿɿ���ʹ��maxlength���Կ���
	if( !check_maxLengthValue( len, check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_lengthValue(len, str){
	if(str==null || str==''){
		return true;
	}
	if(str.length()==len) return true;

	return fasle;
}
function check_length(len , ele, info){
	if( !check_lengthValue( len, check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
function my_check_bigDecimal(ele,info){
	//var ele = document.getElementById(eleId);
	if(ele.value=='' || ele.value==null )
		return true;
	if( !checkBigDec(ele.value) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}
function check_minLengthValue(len,str){
	if(str==null || str==''){
		return true;
	}
	if(str.length<len) return false;

	return true;
}
function check_minLength(len, ele,info){
	if( !check_minLengthValue( len, check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

function check_isPositiveValue(str){
	 
	 if (str==null || str=='')
	  return true;
	  
     if (!check_isNumber(str)) return false;
	 
	 if( parseFloat(str)<=0 ) return false;
	 
	 //˵��������
	 return true;

}
function check_isPositive(ele,info){
	if( !check_isPositiveValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}


//У���Ƿ�Ϊ�Ǹ���(��(0������)
function check_isNonNegativeValue(str){
	 
	 if (str==null || str=='')
	  return true;
	  
     if (!check_isNumber(str)) return false;
	 
	 if( parseFloat(str)<0 ) return false;
	 
	 //˵���ǷǸ���
	 return true;

}
function check_isNonNegative(ele,info){
	if( !check_isNonNegativeValue( check_getValue(ele) ) ){
	    alert(info);
		ele.focus();
	    return false;
	}else{
		return true;
	}
}

/*验证时间段的开始日期不能大于结束的日期*/
function checkDateSpace(str1,str2,strName){
	var date1 = new Date(str1.value.replace(/-/g,"/"));
	var date2 = new Date(str2.value.replace(/-/g,"/"));
	if(Date.parse(date1)-Date.parse(date2)>0)
	{
		window.alert(strName+" 的开始时间不能大于结束时间！");
		return false;
	}
		return true;
}

function checkIdcard(idcard){
var Errors=new Array(
"验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}

var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
//身份号码位数及格式检验
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查 
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
}
if(ereg.test(idcard)){//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1 
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判断校验位
if(M == idcard_array[17]||"X"==idcard_array[17]||'x'== idcard_array[17]) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
      

