运用javascript对于前台数据的校验

 

//校验是否为整数

function isInteger(str){
    var rc=true;
    if (str+"" == "undefined" || str == null){
 rc=false;
    } else{
 for(i=0;i<str.length;i++){
     if(i==0 && str.charAt(i)=='-'){
  continue;
     }
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

//校验double类型数据,整数位和小数位的精确校验

function checkDoubleLength(str,intleng,fltleng){
 if (checkFloat(str)==false) {
       return false;
    }

 if(parseFloat(str)<0){
  if (str.length > intleng+fltleng+2) {
   return false;
  }
   }else{
  if (str.length > intleng+fltleng+1) {
   return false;
  }
   }

 var strArray = str.split(".");
 if (strArray.length > 2) {
  return false;
 }

 if(parseFloat(str)<0){
  if (strArray[0].length > intleng+1) {
   return false;
  }
 }else{
  if (strArray[0].length > intleng) {
   return false;
  }
 }
 if (strArray.length == 2) {
  if (strArray[1].length > fltleng) {
   return false;
  }
 }
 return true;
}

 

function checkDateByFields(year,month,day){
    if(!isNumber(year)){
 return false;
    }
    if(!isNumber(month)){
 return false;
    }
    if(!isNumber(day)){
 return false;
    }
    var date = new Date(year, month - 1, day);
    if (date.getMonth() == (month-1)) {
 return true;
    } else {
 return false;
    }
}

 

//校验指定格式的日期
function checkDate(str1,format){ 
    if (str1 + "" == "undefined" || str1 == null){
 return false;
    }
    var y,m,d;
    var Separator;
    if(format=="MMyyyy"){
      if(str1.length!=6) return false;
      else{
        if(isNumber(str1)){
           d = "01";
           m = str1.substring(0,2);
           y = str1.substring(2);
           return checkDateByFields(y,m,d);
        }else{
           return false;
        }
      }
    }
    if(isNumber(str1)){
     //输入日期合法格式:yyyyMMdd,yyMMdd
  if(str1.length!=8&&str1.length!=6) {
      return false;
  }else{
                  if(str1.length==8){
                   if(format=="yy-MM-dd"||format=="yyMMdd") return false;
        y = str1.substring(0,4);
        m = str1.substring(4,6);
        d = str1.substring(6,8);
                  }
                  if(str1.length==6){
                   if(format=="yyyy-MM-dd"||format=="yyyyMMdd") return false;
             y = SERVER_SYSTEM_DATE.substring(0,2)+ str1.substring(0,2);
        m = str1.substring(2,4);
        d = str1.substring(4,6);
                  }
  }
    }else{
        //输入日期合法格式:yyyy.MM.dd
  if(str1.indexOf(".")>-1){
      Separator = ".";
  }
     //输入日期合法格式:yyyy-MM-dd
  if(str1.indexOf("-")>-1){
      Separator = "-";
  }
     //输入日期合法格式:yyyy/MM/dd or dd/MM/yyyy
  if(str1.indexOf("/")>-1){
      Separator = "/";
  }
     //输入日期合法格式:yyyy MM dd
  if(str1.indexOf(" ")>-1){
      Separator = " ";
  }
  arrDate = str1.split(Separator);
  if(arrDate.length!=3) return false;
  for(var i = 0;i < arrDate.length;i++){
      if(arrDate[i]==""){
   return false;
      }
  }
  y = arrDate[0];
  m = arrDate[1];
  d = arrDate[2];
  if(d.toString().length==4){
              y= arrDate[2];
              d= arrDate[0];
              m= arrDate[1];
         }
    }
    return checkDateByFields(y,m,d);
}

 

 

function checkCnId(sID){
 var W=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
 var rc=false;
 if(isUndefined(sID)){
  return rc;
 }
 else if(sID.length==15){
  if (!checkDate(getBirthdayFromCnId(sID))) {
   return rc;
  }else{
      rc = true;
  }
 }
 else if(sID.length==18){
  var nCount=0;
  var nIdNum=0;
  for(var i=0;i<18;i++){
   var c=sID.charAt(i);
   if((c=='X')||(c=='x')){
    nIdNum=10;
   }
   else if((c<='9')||(c>='0')){
    nIdNum=c-'0';
   }
   else{
    return rc;
   }
   nCount+=nIdNum*W[i];
  }
  if (!checkDate(getBirthdayFromCnId(sID))) {
   return rc;
  }
  if((nCount%11)==1){
   rc=true;
  }
 }
 return rc;
}

/*
 *<p>Description: 检查身份证号上的生日与输入生日(yyyy-MM-dd)是否相符</p>
 *@param id 身份证号码
 *@param birth 生日
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnIdBirth(id,birth){
 if (id.length == 15||id.length == 18){
  var id_birthday = getBirthdayFromCnId(id);
  if (birth!=id_birthday ) return false;
    }else{
     return false;
    }
    return true;
}

/*
 *<p>Description: 检查身份证上的性别与输入的性别 (M:male;F:female)是否相符</p>
 *@param id 身份证号码
 *@param gender æ€§åˆ«
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnIdGender(id,gender){
 if (id.length == 15||id.length == 18){
  var id_gender = getGenderFromCnId(id);
  if (gender=="M" || gender=="m") {
   if ( id_gender!="M" ) {
    return false;
   }
     }else{
   if ( id_gender!="F" ) {
    return false;
   }
     }
    }else{
     return false;
 }
    return true;
}

/*
 *<p>Description: 通过四种类型检查输入参数是否为合法的身份证号码(新加坡),传入的参数必须先全部是大写,并且保证页面参数全部大写</p>
 *@param sID 身份证号码
 *@param stype 身份证类型(S,T,G,F)
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgIdByType(sID,stype){
  if(sID.charAt(0)==stype)
   return checkSgId(sID);
  else
   return false;
}

/*
 *<p>Description: 检查输入参数是否为合法的身份证号码(新加坡),传入的参数必须先全部是大写,并且保证页面参数全部大写</p>
 *@param sID 身份证号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgId(sID){
  var rc=true;
  var values = new Array(7);
  var Uin = new Array('A','B','C','D','E','F','G','H','I','Z','J');
  var Fin = new Array('K','L','M','N','P','Q','R','T','U','W','X');
  if (sID+"" == "undefined" || sID == null || sID == ''){
    return true;
  } else if (sID.length!=9) {
  rc=false;
 } else {
  for(i=0; i < sID.length - 1; i++){
   if(i==0){
    if (sID.charAt(i)!='S' && sID.charAt(i)!='T' && sID.charAt(i)!='F' && sID.charAt(i)!='G') {
     rc=false;
     break;
    }
   } else if (i==sID.length-1) {
    if (!(sID.charAt(i)>='A' && sID.charAt(i)<='Z')) {
     rc=false;
     break;
    }
   } else {
    values[i-1] = sID.charAt(i);
    if (sID.charAt(i)<'0' || sID.charAt(i)>'9'){
     rc=false;
     break;
    }
   }
  }
 }
 if (rc) {
  var result;
  if (sID.charAt(0)=='S'||sID.charAt(0)=='F') {
   result = 11 - ((values[0]*2+values[1]*7+values[2]*6+values[3]*5+values[4]*4+values[5]*3+values[6]*2) % 11);
  } else if (sID.charAt(0)=='T'||sID.charAt(0)=='G') {
   result = 11 - ((values[0]*2+values[1]*7+values[2]*6+values[3]*5+values[4]*4+values[5]*3+values[6]*2 + 4) % 11);
  }
  if (sID.charAt(0)=='S'||sID.charAt(0)=='T'){
   if(sID.charAt(8)!=Uin[result-1]) rc=false;
  }else if (sID.charAt(0)=='G'||sID.charAt(0)=='F'){
   if(sID.charAt(8)!=Fin[result-1]) rc=false;
  }
 }
  return rc;
}

/*
 *<p>Description: 马来西亚身份证校验 (781030-01-2652)</p>
 *@param sID 身份证号码
 *@param birthday 出生日期
 *@param gender æ€§åˆ«
 *@param homeplace 生日地代码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMlId(sID,birthday,gender,homeplace){
  var rc = true;
  var birthArray = birthday.split("/");
  if(sID.length!=14){
   rc = false;
  }else{
    var strArray = sID.split("-");
        if(strArray.length!=3){
           rc=false;
        }else{
          //YYMMDD
           if(strArray[0].length!=6){
             rc=false;
           }else{
             if(!isNumber(strArray[0])){
                rc=false;
             }else{
                if(strArray[0].substring(0,2)!=birthArray[2].substring(2)){
                 rc=false;
                }else{
                  if(strArray[0].substring(2,4)!=birthArray[1]){
                           rc=false;
                  }else{
                           if(strArray[0].substring(4)!=birthArray[0])
                            rc=false;
                  }
                }
             }
           }
           //XX==homeplace
           /*if(strArray[1].length!=2){
             rc=false;
           }else{

           }*/
           //999G
           if(strArray[2].length!=4){
             rc=false;
           }else{
             if(!isNumber(strArray[2])){
               rc=false;
             }else{
               var id_gender=strArray[2].charAt(3);
               if (gender=="M" || gender=="m") {
   if ( id_gender!="1" && id_gender!="3" && id_gender!="5" && id_gender!="7" && id_gender!="9" ) {
    return false;
   }
     }else{
   if ( id_gender!="2" && id_gender!="4" && id_gender!="6" && id_gender!="8" && id_gender!="0" ) {
    return false;
   }
     }
             }
           }
        }
  }
  return rc;
}

function checkMlIdForm(sID){
  var rc = true;
  if(sID.length!=14){
   rc = false;
  }else{
    var strArray = sID.split("-");
        if(strArray.length!=3){
           rc=false;
        }else{
          //YYMMDD
           if(strArray[0].length!=6){
             rc=false;
           }else{
             if(!isNumber(strArray[0])){
                rc=false;
             }
           }
           //XX==homeplace
           /*if(strArray[1].length!=2){
             rc=false;
           }else{

           }*/
           //999G
           if(strArray[2].length!=4){
             rc=false;
           }else{
             if(!isNumber(strArray[2])){
               rc=false;
             }
           }
        }
  }
  return rc;
}

/*
 *<p>Description: 新加坡身份证首位与生日关系校验 </p>
 *@param sID 身份证号码
 *@param bYear 生日所在年份
 *@param bMonth ç”Ÿæ—¥æ‰€åœ¨æœˆä»½
 *@param bDay 生日日期
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgIdBirth(sID, bYear, bMonth, bDay){
   var checkDate = new Date(1968, 0, 1);
   var birthDate = new Date(bYear, bMonth-1, bDay);
   var rc = true;
   if ( sID.charAt(0) == 'S' || sID.charAt(0) == 'T') {
       if(birthDate>=checkDate||parseFloat(sID.substring(1,3))>=68)
          if(sID.substring(1,3)!=bYear.substring(2))
              rc=false;
   }
   return rc;
}

/*
 *<p>Description: 根据国家的不同,检查输入的身份证号码是否合法</p>
 *@param id 身份证号码
 *@param country 身份证所在国家,CN:中国;SG:新加坡
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkId(id,country){
 if(isUndefined(country)||country=="CN"){
  return checkCnId(id);
 }else if(country=="SG"){
  return checkSgId(id);
    }
}

/*
 *<p>Description: 检查电话号码是否正确(中国)</p>
 *@param str 待检查的电话号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnPhone(str) {
    var rc=true;
    if (str+"" == "undefined" || str == null){
  rc=false;
    } else {
 for(i=0;i<str.length;i++) {
     if(!(str.charAt(i)>='0' && str.charAt(i)<='9')&& str.charAt(i)!='*' && str.charAt(i)!='('&& str.charAt(i)!=')'&& str.charAt(i)!='-'){
  rc= false;
  break;
     }
  }
    }
    return rc;
}

/*
 *<p>Description: 根据国家的不同,检查电话号码是否正确</p>
 *@param str 待检查的电话号码
 *@param country 电话号码所在国家,CN:中国
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkPhone(str,country) {
    if(isUndefined(country)||country=="CN"){
     return checkCnPhone(str);
 }
}

/*
 *<p>Description: 检查字符串是否只有字母或数字组成</p>
 *@param str 待检查的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isNumberOrLetter(str) {
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else {
  for(i=0;i<str.length;i++) {
      if(str.charAt(i)<'0'||(str.charAt(i)>'9' && str.charAt(i)<'A')||(str.charAt(i)>'Z' && str.charAt(i)<'a')||str.charAt(i)>'z'){
    rc= false;
    break;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: 检查BP机号码</p>
 *@param str 待检查的BP机号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkBp(str) {
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else {
  for(i=0;i<str.length;i++) {
      if((str.charAt(i)<'0' || str.charAt(i)>'9')&&(str.charAt(i)!='-'||str.charAt(i)!='*')){
    rc= false;
    break;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: 检查是否全为字母</p>
 *@param str 待检查的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isLetter(str){
    var rc=true;
    if (isUndefined(str)){
     rc=false;
    } else {
 for(i=0;i<str.length;i++) {
     if((str.charAt(i)>'Z' && str.charAt(i)<'a')||str.charAt(i)<'A' || str.charAt(i)>'z'){
      rc=false;
      break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: 检查年龄</p>
 *@param str 待检查的年龄
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkAge(age){
 var rc=true;
 if(isNumber(age)==false) {
  rc= false;
 } else if(age>=200) {
  rc= false;
 } else if(age<0){
  rc=false;
 }
 return rc;
}

/*
 *<p>Description: 检查是否全为空格</p>
 *@param str 待检查的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isSpace(str) {
    for(i=0;i<str.length-1;i++) {
  if(str.charAt(i)!=' ') {
      if(str.charAt(i)!=0xa1||str.chatAt(i+1)!=0xa1)
   return false;
      else
   i++;
  }
    }
    if(str.charAt(i)!=' ')
 return false;
    return true;
}

/*
 *<p>Description: 检查日期在给定日期之后</p>
 *@param year 待检查日期的年份
 *@param month 待检查日期的月份
 *@param day 待检查日
 *@param d0 给定的日期
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateIsLargerThanDate(year, month, day, d0){
  return isLargerThanNow(year, month, day,d0);
}

function isLargerThanNow(year, month, day, d0){
    var rc=false;
    if(!checkDateByFields(year,month,day)){
     rc=false;
    } else{
  var d1=new Date(year,month-1,day);
  if(d1.getTime()>d0.getTime()){
      rc=true;
  }
    }
    return rc;
}

/*
 *<p>Description: 检查日期在当前日期之后</p>
 *@param year 待检查日期的年份
 *@param month 待检查日期的月份
 *@param day 待检查日
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateIsLargerThanNow(year, month, day){
 var Y = SERVER_SYSTEM_DATE.substring(6);
 var M = SERVER_SYSTEM_DATE.substring(3,5);
 var D = SERVER_SYSTEM_DATE.substring(0,2);
 var nowdate=new Date(Y,M-1,D);
    return isLargerThanNow(year,month,day,nowdate);
}

/*
 *<p>Description: 比较两个日期是否相差一个月,如果超出一个月返回false,否则返回true</p>
 *@param date1 待检查的第一个日期
 *@param date2 待检查的第二个日期
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isDatesBetweenOneMonth(date1,date2){
 var rc = true;
 var y1 = date1.substring(6);
 var m1 = date1.substring(3,5);
 var d1 = date1.substring(0,2);
       var y2 = date2.substring(6);
 var m2 = date2.substring(3,5);
 var d2 = date2.substring(0,2);
       if(y1!=y2) {
          if(y1>y2){
            if(parseFloat(y2)+1!=y1) rc=false;
            else if(parseFloat(m2)!=12||parseFloat(m1)!=1) rc=false;
                 else if(d2<=d1) rc=false;
          }
          if(y1<y2){
            if(parseFloat(y1)+1!=y2) rc=false;
            else if(parseFloat(m1)!=12||parseFloat(m2)!=1) rc=false;
                 else if(d1<=d2) rc=false;
          }
       }else {
          if(m1>m2){
             if(parseFloat(m2)+1!=m1) rc = false;
             else if(d2<=d1) rc = false;
          }
          if(m1<m2){
            if(parseFloat(m1)+1!=m2) rc = false;
            else if(d1<=d2) rc = false;
          }
 }
       return rc;
}

/*
 *<p>Description: 检查是否为当日以前的合法日期</p>
 *@param str1 待检查的日期 yyyy-MM-dd
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isPastDate(str1) {
    if (str1 + "" == "undefined" || str1 == null){
 return false;
    }
    var y,m,d;
    var i;
    i = str1.indexOf("-");
    if (i == -1 || i == str1.length) { return false; }
    y = str1.substring(0, i);
    str1 = str1.substring(i + 1);

    i = str1.indexOf("-");
    if (i == -1 || i == str1.length) { return false; }
    m = str1.substring(0, i);

    d = str1.substring(i + 1);

    return !dateIsLargerThanNow(y,m,d);
}

/*
 *<p>Description: 检测输入的保单号是否合法</p>
 *@param str 输入保单号
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkPolicyCode(str){
   //XXX-X or XXXXX
   var rc = true;
   var len = 10;
   if(!isUndefined(str)&&str!=""){
     var aryStr = str.split("-");
     if(aryStr.length==1){
       if(str.length>10)
         rc = false;
       else{
         if(!isNumber(str))
           rc = false;
         else{
           str = preFillZero(str,len);
           var checkNum = getCheckDigit(str);
           if(checkNum!=str.charAt(9))
             rc = false;
         }
       }
     }else{
       if(aryStr.length==2){
         if(aryStr[0].length>9||aryStr[1].length!=1)
           rc = false;
         else{
           if(!isNumber(aryStr[0])||!isNumber(aryStr[1]))
             rc = false;
           else{
             var preStr = preFillZero(aryStr[0],len-1);
             var checkNum = getCheckDigit(preStr);
             if(checkNum!=aryStr[1])
               rc = false;
           }
         }
       }else{
         rc = false;
       }
     }
   }
   return rc;
}

/*
 *<p>Description: 检测输入的投保单号是否合法</p>
 *@param str 输入投保单号
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkApplyCode(str){
  //XX/XXXXX/XX
  var rc = true;
  if(!isUndefined(str)&&str!=""){
     var aryStr = str.split("/");
     if(aryStr.length==1){
       if(str.length>10||str.length<8)
         rc = false;
       else
         if(!isNumber(str.substring(str.length-7)))
           rc = false;
     }else{
       if(aryStr.length==3){
         if(aryStr[0].length>3||aryStr[0].length<1||aryStr[1].length!=5||aryStr[2].length!=2)
           rc = false;
       else
         if(!isNumber(aryStr[1])||!isNumber(aryStr[2]))
           rc = false;
       }else{
         rc = false;
       }
     }
  }
  return rc;
}

/*
 *<p>Description: 判断一个字符串是否以指定字符串开头</p>
 *@param str 待检查字符串
 *@param start 指定开头的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function startWith(str,start){
 try{
    return (str.substring(0,start.length)==start);
 }catch(ex){
    return false;
 }
}

/*
 *<p>Description: 判断一个字符串是否以指定字符串结尾</p>
 *@param str 待检查字符串
 *@param end 指定结尾的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function endWith(str,end){
 try{
    return (str.substring(str.length-end.length)==end);
 }catch(ex){
    return false;
 }
}

/*
 *<p>Description: 检查是否是团单保单号码,去除顺序号后以088结尾即认为是团单保单号码,否则不是</p>
 *@param code 待检查的保单号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isGroupPolicyCode(code){
 return endWith(getPureCode(code),"088");
}

/*
 *<p>Description: 检查是否是团单投保单号码,去除顺序号后以050结尾即认为是团单投保单号码,否则不是</p>
 *@param code 待检查的投保单号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isGroupApplyCode(code){
 return endWith(getPureCode(code),"050");
}

/*
 *<p>Description: 检查是否是符合规则的个单投保单号码,去除顺序号后以001结尾即认为是个单投保单号码,否则不是</p>
 *@param code 待检查的投保单号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidIndvApplyCode(code) {
 return isValidApplyCode(code,"001");
}

/*
 *<p>Description: 检查是否是符合规则的团单投保单号码,去除顺序号后以050结尾即认为是团单投保单号码,否则不是</p>
 *@param code 待检查的投保单号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidGroupApplyCode(code) {
 return isValidApplyCode(code,"050");
}

/*
 *<p>Description: 检查是否是符合规则的投保单号码,去除顺序号后以001结尾即认为是个单投保单号码,否则不是;
                  去除顺序号后以050结尾即认为是团单投保单号码,否则不是</p>
 *@param code 投保单号码
 *@param suffix 投保单号码后缀(个单:001 团单:050)
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidApplyCode(code,suffix) {
 var result = false;
 //截取续保的投保单号码前面的部分
 var pureCode = getPureCode(code);
 //是否是10位
 result = pureCode.length == 15;
 if (result == false) return false;
  //检查是否全部是数字
  for(i=0; i < pureCode.length - 1; i++) {
   if (pureCode.charAt(i)<'0' || pureCode.charAt(i)>'9'){
    result = false;
    break;
   }
  }
 if (result == false) return false;
 //如果是老保单,则返回
 if (startWith(pureCode,"00")) return true;
 //是否以(个单:001 团单:050)结尾
 result = endWith(pureCode,suffix);
 if (result == false) return false;
 //检查校验码
 //检查重新组合后的数字除以97余数是否为1
 var crc;
 if (startWith(pureCode,"0")) {
    crc = pureCode.substring(1,10) + pureCode.substring(12,15) + pureCode.substring(10,12);
 } else {
    crc = pureCode.substring(0,10) + pureCode.substring(12,15) + pureCode.substring(10,12);
 }
 result = (parseInt(crc) % 97) == 1;
 return result;
}

/*
 *<p>Description: 检查输入的E-mail是否正确(validate email return boolean value)</p>
 *@param str 待检查的e-mail
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkEmail(str){
    var CHAR_LETTER_NUMERIC=1;
    var CHAR_UNDERLINE=2;
    var CHAR_DOT=3;
    var CHAR_AT=4;
    var CHAR_DIVIDE=5;
    var CHAR_END=6;
    var CHAR_OTHER=7;
    var DIV_CHAR=',';

    var rc=true;
    if (isUndefined(str)){
 rc=false;
 return rc;
    } else if(str.length==0){
 rc=true;
 return rc;
    }

    var exit_flag=false;
    var total_char=str.length;
    var pos=0;
    var cur_char;
    var cur_status=0;
    while((pos<=total_char) && (!exit_flag)){
 if(pos==total_char){
   cur_char=CHAR_END;
 }
 else if (str.charAt(pos)=='.'){
   cur_char=CHAR_DOT;
 }
 else if (str.charAt(pos)==DIV_CHAR){
   cur_char=CHAR_DIVIDE;
 }
 else if(str.charAt(pos)=='_'){
   cur_char=CHAR_UNDERLINE;
 }
 else if(str.charAt(pos)=='@'){
   cur_char=CHAR_AT;
 }
 else if(((str.charAt(pos)>='a')&&(str.charAt(pos)<='z'))||((str.charAt(pos)>='A')&&(str.charAt(pos)<='Z'))||((str.charAt(pos)>='0')&&(str.charAt(pos)<='9'))||(str.charAt(pos)=='-')){
   cur_char=CHAR_LETTER_NUMERIC;
 }
 else{
   cur_char=CHAR_OTHER;
 }
 switch (cur_status){
   case -1://error
     rc=false;
     exit_flag=true;
     break;

   case 0://begin status
     if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
       cur_status=1;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 1://user name
     if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
       cur_status=1;
     }
     else if(cur_char==CHAR_AT){
       cur_status=2;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 2://@
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=6;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;

   case 6://"."
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=6;
     }
     else if(cur_char==CHAR_DOT){
       cur_status=3;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;

   case 3://fisrt domain name
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=4;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 4://not first domain name
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=4;
     }
     else if(cur_char==CHAR_DOT){
       cur_status=3;
     }
     else if(cur_char==CHAR_DIVIDE){
       cur_status=0;
     }
     else if(cur_char==CHAR_END){
       cur_status=5;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 5://ok
     rc=true;
     exit_flag=true;
     break;
   default:
     rc=false;
     exit_flag=true;
     break;
 }
 pos++;
    }
    return rc;
}

/*
 *<p>Description: 检查输入的移动电话号码是否正确(validate mobile phone return boolean value)</p>
 *@param str 待检查的移动电话号码
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMobile(str,country) {
 return checkPhone(str,country);
}

/*
 *<p>Description: 检查输入的字符是否为double类型数据(validate double number return boolean value)</p>
 *@param str 待检查的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isDouble(str){
    var rc=true;
    oneDecimal=false;
    if (isUndefined(str)){
  rc=false;
    } else{
 for(i=0;i<str.length;i++){
     ch=str.charAt(i);
     if(i==0 && ch=='-'){
   continue;
     }
     if(ch=="." && !oneDecimal){
   oneDecimal=true;
   continue;
     }
     if ((ch< "0") || (ch >'9')){
   rc=false;
   break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: 检查输入的字符是否为货币类型数据(validate currency number return boolean value)</p>
 *@param str 待检查的字符串
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCurrency(str){
    var rc=true;
    oneDecimal=false;
    if (isUndefined(str)){
 rc=false;
    } else{
 for(i=0;i<str.length;i++){
     ch=str.charAt(i);
     if(i==0 && ch=='-'){
  continue;
     }
     if(ch=="." && !oneDecimal){
  oneDecimal=true;
  continue;
     }
     if (!((ch>= '0' && ch <='9')||ch==',')){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: 按照给定数据类型,检查输入值是否大于给定的最小值,数据类型分为,value,date,number,currency四种
                  (validate if value < minValue and return boolean value)</p>
 *@param str 输入字符
 *@param minstr 给定的最小值
 *@param formatType 数据类型
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMinValue(str,minstr,formatType){
    var rc = true;
    if (isUndefined(str)){
 rc = false;
    }else{
  if (formatType=="number"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
  if (formatType=="currency"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
  if (formatType=="date"){
      if(str!="" && checkDate(str)) {
   var formatStr = formatDate(str,"yyyy-MM-dd");
   var formatMinStr = formatDate(minstr,"yyyy-MM-dd");
   if (formatStr < formatMinStr) rc = false;
      }
  }
  if (formatType=="value"){
      if(str!="") {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: 按照给定数据类型,检查输入值是否小于给定的最大值,数据类型分为,value,date,number,currency四种
                  (validate if value > maxValue and return boolean value)</p>
 *@param str 输入字符
 *@param maxstr 给定的最大值
 *@param formatType 数据类型
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMaxValue(str,maxstr,formatType){
    var rc = true;
    if (isUndefined(str)){
  rc = false;
    }else{
  if (formatType=="number"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
  if (formatType=="currency"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
  if (formatType=="date"){
      if(str!="" && checkDate(str)) {
   var formatStr = formatDate(str,"yyyy-MM-dd");
   var formatMaxStr = formatDate(maxstr,"yyyy-MM-dd");
   if (formatStr > formatMaxStr) rc = false;
      }
  }
  if (formatType=="value"){
      if(str!="") {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: 检查输入的字符类型是否为numberåž‹(validte number type return boolean value)</p>
 *@param str 待检查的字符
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isNumber(str){
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else if(str.length==0){
  rc=false;
    } else {
 for(i=0;i<str.length;i++){
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: 按照文档的编码类型,长度及校验位算法,检查输入的编码是否合法(validate the document code return boolean value)</p>
 *@param str 待检查的编码
 *@param typeCode 编码类型
 *@param nLength 编码指定长度
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkDocCode(str,typeCode,nLength){
 var rc=true;
 var strLength = str.length;
 if (isUndefined(str)){
  rc=false;
    } else {
 //check code length
 if(strLength != nLength) {
     rc = false;
 }else{
     //check code type
            var checkNum = new Array(9,7,3,2,8,7,4,3,2);
     if(typeCode == 1){
  //check code arithmetic
  var check = 10-(str.charAt(0)*checkNum[0]+str.charAt(1)*checkNum[1]+str.charAt(2)*checkNum[2]+
                            str.charAt(3)*checkNum[3]+str.charAt(4)*checkNum[4]+str.charAt(5)*checkNum[5]+
                            str.charAt(6)*checkNum[6]+str.charAt(7)*checkNum[7]+str.charAt(8)*checkNum[8])%10;
               if(check!=str.charAt(9)) rc = false;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: 检查输入编码的长度是否符合指定长度(validate the code length return boolean value)</p>
 *@param str 待检查的编码
 *@param codeLength 指定长度
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCodeLength(str,codeLength){
   var rc=true;
   if (isUndefined(str)){
 rc=false;
    } else {
 if(str.length>codeLength)  rc=false;
    }
   return rc;
}

/*
 *<p>Description: 检查输入的银行帐号是否正确(validate the bank account return boolean value)</p>
 *@param str 待检查的银行帐号
 *@return boolean值,true or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkBankAccount(str){
    var rc = true;
    return rc;
}

/*
 *<p>Description: 比较两个日期的大小</p>
 *@param strDate1 给定的第一个日期
 *@param strDate2 给定的第二个日期
 *@return 0:两个日期相等;
          1:strDate1大于strDate2ï¼›
         -1:strDate1小于strDate2ï¼›
          2:输入日期非法;
          3:出现异常.
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateCompare(strDate1,strDate2){
    var rc = 3;
    if(isUndefined(strDate1)||strDate1==""||!checkDate(strDate1)
        ||isUndefined(strDate2)||strDate2==""||!checkDate(strDate2)){
 rc = 2;
    }else{
      try{
       var formatStr1 = formatDate(strDate1,"yyyy-MM-dd");
       var formatStr2 = formatDate(strDate2,"yyyy-MM-dd");
       if (formatStr1 < formatStr2) rc = -1;
       if (formatStr1 > formatStr2) rc = 1;
       if (formatStr1 == formatStr2) rc = 0;
      }catch(ex){
        rc = 3;
        return rc;
      }
    }
    return rc;
}

/*
 *<p>Description: 检查proposalNo的正确性</p>
 *@param proposalNo 给定的proposalNo
 *@return 0:正确数据
         -1:输入NO.长度错误;
         -2:输入最后两位不符合当前时间;
         -3:输入的序列号不正确.
 *<p>Create Time: 2004-10-15</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkProposalNo(proposalNo){
  var rc = 0;
  var dateLength = SERVER_SYSTEM_DATE.length;
  var lastPart = SERVER_SYSTEM_DATE.substring(dateLength-2);
  if(!isUndefined(proposalNo)&&proposalNo!=""){
    if(proposalNo.length>10||proposalNo.length<8)
        return -1;
    if(proposalNo.substring(proposalNo.length-2)!=lastPart)
     if(parseFloat(proposalNo.substring(proposalNo.length-2))+1!=lastPart||SERVER_SYSTEM_DATE.substring(3,5)!="01")
         return -2;
    if(!isNumber(proposalNo.substring(proposalNo.length-7,proposalNo.length-2)))
    return -3;
  }
  return rc;
}

/**
 * 检查是否全为空格 AllSpace
 */
function AllSpace(str) {
    for(i=0;i<str.length-1;i++) {
        if(str.charAt(i)!=' ') {
            if(str.charAt(i)!=0xa1||str.chatAt(i+1)!=0xa1)
                return false;
            else
                i++;
        }
    }
    if(str.charAt(i)!=' ')
        return false;
    return true;
}

/**
 * 检查是否全为空格 AllSpace
 */
function allSpace(str) {
    return AllSpace(str);
}

/**
 * // 1.检查输入参数是否全为数字
 */
function CheckNumber(str){
    var rc=true;
    if (str+"" == "undefined" || str == null){
        rc=false;
    } else if(str.length==0){
 rc=false;
    } else {
 for(i=0;i<str.length;i++){
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
         rc=false;
         break;
     }
 }
    }
    return rc;
}

function checkNumber(str){
    return CheckNumber(str);
}

function getCheckDigit(str){
  var checkNum = new Array(9,7,3,2,8,7,4,3,2);
  //check code arithmetic
  var check = 10-(str.charAt(0)*checkNum[0]+str.charAt(1)*checkNum[1]+str.charAt(2)*checkNum[2]+
              str.charAt(3)*checkNum[3]+str.charAt(4)*checkNum[4]+str.charAt(5)*checkNum[5]+
              str.charAt(6)*checkNum[6]+str.charAt(7)*checkNum[7]+str.charAt(8)*checkNum[8])%10;
  if (check==10) check = 0;
  return check;
}


/*
 * JavaScript Уģ飬true|false;
 * Public.js
 */

/*
åµ¥

ǷΪ
isInteger

ǷΪϷֳָȺСֳȵĸ
checkDoubleLength

ǷΪϷ(validte date type return boolean value by year,month,day)
checkDateByFields

ǷΪϷ(validte date type return boolean value by date string)
checkDate

ǷΪϷ֤ (й)(validate China ID code return boolean value)
checkCnId

ǷΪϷ֤루¼£IJȫǴдұ֤ҳȫд
checkSgId

¼֤λչϵУ
checkSgIdBirth

֤ϵ(yyyy-MM-dd)Ƿ
checkCnIdBirth

֤ϵԱԱ (M:male;F:female)Ƿ
checkCnIdGender

ݹҵIJ֤ͬǷϷ
checkId

绰Ƿȷ(й)
checkCnPhone

ݹҵIJͬ绰Ƿȷ
checkPhone

ַǷֻĸ
isNumberOrLetter

BP
checkBp

ǷȫΪĸ
isLetter


checkAge

ǷȫΪո
isSpace

Ú¸Ö®
isLargerThanNow

ڵǰ֮
dateIsLargerThanNow

ǷΪǰĺϷ
isPastDate

ıǷϷв
checkPolicyCode

ͶǷϷ
checkApplyCode

жһַǷַָͷ
startWith

жһַǷַָβ
endWith

Ƿŵ룬ȥ˳ź088βΪŵ룬
isGroupPolicyCode

ǷŵͶ룬ȥ˳ź050βΪŵͶ룬
isGroupApplyCode

ǷǷϹĸͶ룬ȥ˳ź001βΪǸͶ룬
isValidIndvApplyCode

ǷǷϹŵͶ룬ȥ˳ź050βΪŵͶ룬
isValidGroupApplyCode

ǷǷϹͶ룬ȥ˳ź001βΪǸͶ룬ǣȥ˳ź050βΪŵͶ룬
isValidApplyCode

E-mailÇ·È·(validate email return boolean value)
checkEmail

ƶ绰Ƿȷ(validate mobile phone return boolean value)
checkMobile

ַǷΪDouble(validate float number return boolean value)
isDouble

ַǷΪ(validate currency number return boolean value)
checkCurrency

ոֵͣǷڸСֵͷΪvalue,date,number,currency(validate if value < minValue and return boolean value)
checkMinValue

ոֵͣǷСڸֵͷΪvalue,date,number,currency(validate if value > maxValue and return boolean value)
checkMaxValue

ַǷΪnumber(validte number type return boolean value)
isNumber

ĵıͣȼУλ㷨ıǷϷ(validate the document code return boolean value)
checkDocCode

ijǷָ(validate the code length return boolean value)
checkCodeLength

ʺǷȷ(validate the bank account return boolean value)
checkBankAccount

*/

/*
 *<p>Description: ǷΪ</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isInteger(str){
    var rc=true;
    if (str+"" == "undefined" || str == null){
 rc=false;
    } else{
 for(i=0;i<str.length;i++){
     if(i==0 && str.charAt(i)=='-'){
  continue;
     }
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: ǷΪϷֳָȺСֳȵĸ</p>
 *@param str Ö·
 *@param intleng Ö³
 *@param fltleng Сֳ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkDoubleLength(str,intleng,fltleng){
 if (checkFloat(str)==false) {
       return false;
    }

 if(parseFloat(str)<0){
  if (str.length > intleng+fltleng+2) {
   return false;
  }
   }else{
  if (str.length > intleng+fltleng+1) {
   return false;
  }
   }

 var strArray = str.split(".");
 if (strArray.length > 2) {
  return false;
 }

 if(parseFloat(str)<0){
  if (strArray[0].length > intleng+1) {
   return false;
  }
 }else{
  if (strArray[0].length > intleng) {
   return false;
  }
 }
 if (strArray.length == 2) {
  if (strArray[1].length > fltleng) {
   return false;
  }
 }
 return true;
}

/*
 *<p>Description: ǷΪϷ(validte date type return boolean value by year,month,day)</p>
 *@param year Úµ
 *@param month ڵ·
 *@param day
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkDateByFields(year,month,day){
    if(!isNumber(year)){
 return false;
    }
    if(!isNumber(month)){
 return false;
    }
    if(!isNumber(day)){
 return false;
    }
    var date = new Date(year, month - 1, day);
    if (date.getMonth() == (month-1)) {
 return true;
    } else {
 return false;
    }
}

/*
 *<p>Description: ǷΪϷ(validte date type return boolean value by date string)</p>
 *@param str1 Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkDate(str1,format){ 
    if (str1 + "" == "undefined" || str1 == null){
 return false;
    }
    var y,m,d;
    var Separator;
    if(format=="MMyyyy"){
      if(str1.length!=6) return false;
      else{
        if(isNumber(str1)){
           d = "01";
           m = str1.substring(0,2);
           y = str1.substring(2);
           return checkDateByFields(y,m,d);
        }else{
           return false;
        }
      }
    }
    if(isNumber(str1)){
     //ںϷʽyyyyMMdd,yyMMdd
  if(str1.length!=8&&str1.length!=6) {
      return false;
  }else{
                  if(str1.length==8){
                   if(format=="yy-MM-dd"||format=="yyMMdd") return false;
        y = str1.substring(0,4);
        m = str1.substring(4,6);
        d = str1.substring(6,8);
                  }
                  if(str1.length==6){
                   if(format=="yyyy-MM-dd"||format=="yyyyMMdd") return false;
             y = SERVER_SYSTEM_DATE.substring(0,2)+ str1.substring(0,2);
        m = str1.substring(2,4);
        d = str1.substring(4,6);
                  }
  }
    }else{
        //ںϷʽyyyy.MM.dd
  if(str1.indexOf(".")>-1){
      Separator = ".";
  }
     //ںϷʽyyyy-MM-dd
  if(str1.indexOf("-")>-1){
      Separator = "-";
  }
     //ںϷʽyyyy/MM/dd or dd/MM/yyyy
  if(str1.indexOf("/")>-1){
      Separator = "/";
  }
     //ںϷʽyyyy MM dd
  if(str1.indexOf(" ")>-1){
      Separator = " ";
  }
  arrDate = str1.split(Separator);
  if(arrDate.length!=3) return false;
  for(var i = 0;i < arrDate.length;i++){
      if(arrDate[i]==""){
   return false;
      }
  }
  y = arrDate[0];
  m = arrDate[1];
  d = arrDate[2];
  if(d.toString().length==4){
              y= arrDate[2];
              d= arrDate[0];
              m= arrDate[1];
         }
    }
    return checkDateByFields(y,m,d);
}

/*
 *<p>Description: ǷΪϷ֤ (й)(validate China ID code return boolean value)</p>
 *@param sID Ö¤
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnId(sID){
 var W=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
 var rc=false;
 if(isUndefined(sID)){
  return rc;
 }
 else if(sID.length==15){
  if (!checkDate(getBirthdayFromCnId(sID))) {
   return rc;
  }else{
      rc = true;
  }
 }
 else if(sID.length==18){
  var nCount=0;
  var nIdNum=0;
  for(var i=0;i<18;i++){
   var c=sID.charAt(i);
   if((c=='X')||(c=='x')){
    nIdNum=10;
   }
   else if((c<='9')||(c>='0')){
    nIdNum=c-'0';
   }
   else{
    return rc;
   }
   nCount+=nIdNum*W[i];
  }
  if (!checkDate(getBirthdayFromCnId(sID))) {
   return rc;
  }
  if((nCount%11)==1){
   rc=true;
  }
 }
 return rc;
}

/*
 *<p>Description: ֤ϵ(yyyy-MM-dd)Ç·</p>
 *@param id Ö¤
 *@param birth
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnIdBirth(id,birth){
 if (id.length == 15||id.length == 18){
  var id_birthday = getBirthdayFromCnId(id);
  if (birth!=id_birthday ) return false;
    }else{
     return false;
    }
    return true;
}

/*
 *<p>Description: ֤ϵԱԱ (M:male;F:female)Ç·</p>
 *@param id Ö¤
 *@param gender Ô±
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnIdGender(id,gender){
 if (id.length == 15||id.length == 18){
  var id_gender = getGenderFromCnId(id);
  if (gender=="M" || gender=="m") {
   if ( id_gender!="M" ) {
    return false;
   }
     }else{
   if ( id_gender!="F" ) {
    return false;
   }
     }
    }else{
     return false;
 }
    return true;
}

/*
 *<p>Description: ͨͼǷΪϷ֤루¼£IJȫǴдұ֤ҳȫд</p>
 *@param sID Ö¤
 *@param stype Ö¤(S,T,G,F)
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgIdByType(sID,stype){
  if(sID.charAt(0)==stype)
   return checkSgId(sID);
  else
   return false;
}

/*
 *<p>Description: ǷΪϷ֤루¼£IJȫǴдұ֤ҳȫд</p>
 *@param sID Ö¤
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgId(sID){
  var rc=true;
  var values = new Array(7);
  var Uin = new Array('A','B','C','D','E','F','G','H','I','Z','J');
  var Fin = new Array('K','L','M','N','P','Q','R','T','U','W','X');
  if (sID+"" == "undefined" || sID == null || sID == ''){
    return true;
  } else if (sID.length!=9) {
  rc=false;
 } else {
  for(i=0; i < sID.length - 1; i++){
   if(i==0){
    if (sID.charAt(i)!='S' && sID.charAt(i)!='T' && sID.charAt(i)!='F' && sID.charAt(i)!='G') {
     rc=false;
     break;
    }
   } else if (i==sID.length-1) {
    if (!(sID.charAt(i)>='A' && sID.charAt(i)<='Z')) {
     rc=false;
     break;
    }
   } else {
    values[i-1] = sID.charAt(i);
    if (sID.charAt(i)<'0' || sID.charAt(i)>'9'){
     rc=false;
     break;
    }
   }
  }
 }
 if (rc) {
  var result;
  if (sID.charAt(0)=='S'||sID.charAt(0)=='F') {
   result = 11 - ((values[0]*2+values[1]*7+values[2]*6+values[3]*5+values[4]*4+values[5]*3+values[6]*2) % 11);
  } else if (sID.charAt(0)=='T'||sID.charAt(0)=='G') {
   result = 11 - ((values[0]*2+values[1]*7+values[2]*6+values[3]*5+values[4]*4+values[5]*3+values[6]*2 + 4) % 11);
  }
  if (sID.charAt(0)=='S'||sID.charAt(0)=='T'){
   if(sID.charAt(8)!=Uin[result-1]) rc=false;
  }else if (sID.charAt(0)=='G'||sID.charAt(0)=='F'){
   if(sID.charAt(8)!=Fin[result-1]) rc=false;
  }
 }
  return rc;
}

/*
 *<p>Description: ֤У (781030-01-2652)</p>
 *@param sID Ö¤
 *@param birthday
 *@param gender Ô±
 *@param homeplace յش
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMlId(sID,birthday,gender,homeplace){
  var rc = true;
  var birthArray = birthday.split("/");
  if(sID.length!=14){
   rc = false;
  }else{
    var strArray = sID.split("-");
        if(strArray.length!=3){
           rc=false;
        }else{
          //YYMMDD
           if(strArray[0].length!=6){
             rc=false;
           }else{
             if(!isNumber(strArray[0])){
                rc=false;
             }else{
                if(strArray[0].substring(0,2)!=birthArray[2].substring(2)){
                 rc=false;
                }else{
                  if(strArray[0].substring(2,4)!=birthArray[1]){
                           rc=false;
                  }else{
                           if(strArray[0].substring(4)!=birthArray[0])
                            rc=false;
                  }
                }
             }
           }
           //XX==homeplace
           /*if(strArray[1].length!=2){
             rc=false;
           }else{

           }*/
           //999G
           if(strArray[2].length!=4){
             rc=false;
           }else{
             if(!isNumber(strArray[2])){
               rc=false;
             }else{
               var id_gender=strArray[2].charAt(3);
               if (gender=="M" || gender=="m") {
   if ( id_gender!="1" && id_gender!="3" && id_gender!="5" && id_gender!="7" && id_gender!="9" ) {
    return false;
   }
     }else{
   if ( id_gender!="2" && id_gender!="4" && id_gender!="6" && id_gender!="8" && id_gender!="0" ) {
    return false;
   }
     }
             }
           }
        }
  }
  return rc;
}

function checkMlIdForm(sID){
  var rc = true;
  if(sID.length!=14){
   rc = false;
  }else{
    var strArray = sID.split("-");
        if(strArray.length!=3){
           rc=false;
        }else{
          //YYMMDD
           if(strArray[0].length!=6){
             rc=false;
           }else{
             if(!isNumber(strArray[0])){
                rc=false;
             }
           }
           //XX==homeplace
           /*if(strArray[1].length!=2){
             rc=false;
           }else{

           }*/
           //999G
           if(strArray[2].length!=4){
             rc=false;
           }else{
             if(!isNumber(strArray[2])){
               rc=false;
             }
           }
        }
  }
  return rc;
}

/*
 *<p>Description: ¼֤λչϵУ </p>
 *@param sID Ö¤
 *@param bYear
 *@param bMonth Â·
 *@param bDay
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkSgIdBirth(sID, bYear, bMonth, bDay){
   var checkDate = new Date(1968, 0, 1);
   var birthDate = new Date(bYear, bMonth-1, bDay);
   var rc = true;
   if ( sID.charAt(0) == 'S' || sID.charAt(0) == 'T') {
       if(birthDate>=checkDate||parseFloat(sID.substring(1,3))>=68)
          if(sID.substring(1,3)!=bYear.substring(2))
              rc=false;
   }
   return rc;
}

/*
 *<p>Description: ݹҵIJ֤ͬǷϷ</p>
 *@param id Ö¤
 *@param country Ö¤Ú¹Ò£CNйSG¼
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkId(id,country){
 if(isUndefined(country)||country=="CN"){
  return checkCnId(id);
 }else if(country=="SG"){
  return checkSgId(id);
    }
}

/*
 *<p>Description: ç»°Ç·È·(й)</p>
 *@param str ĵ绰
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCnPhone(str) {
    var rc=true;
    if (str+"" == "undefined" || str == null){
  rc=false;
    } else {
 for(i=0;i<str.length;i++) {
     if(!(str.charAt(i)>='0' && str.charAt(i)<='9')&& str.charAt(i)!='*' && str.charAt(i)!='('&& str.charAt(i)!=')'&& str.charAt(i)!='-'){
  rc= false;
  break;
     }
  }
    }
    return rc;
}

/*
 *<p>Description: ݹҵIJͬ绰Ƿȷ</p>
 *@param str ĵ绰
 *@param country ç»°Ú¹Ò£CNй
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkPhone(str,country) {
    if(isUndefined(country)||country=="CN"){
     return checkCnPhone(str);
 }
}

/*
 *<p>Description: ַǷֻĸ</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isNumberOrLetter(str) {
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else {
  for(i=0;i<str.length;i++) {
      if(str.charAt(i)<'0'||(str.charAt(i)>'9' && str.charAt(i)<'A')||(str.charAt(i)>'Z' && str.charAt(i)<'a')||str.charAt(i)>'z'){
    rc= false;
    break;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: BP</p>
 *@param str BP
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkBp(str) {
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else {
  for(i=0;i<str.length;i++) {
      if((str.charAt(i)<'0' || str.charAt(i)>'9')&&(str.charAt(i)!='-'||str.charAt(i)!='*')){
    rc= false;
    break;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: ǷȫΪĸ</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isLetter(str){
    var rc=true;
    if (isUndefined(str)){
     rc=false;
    } else {
 for(i=0;i<str.length;i++) {
     if((str.charAt(i)>'Z' && str.charAt(i)<'a')||str.charAt(i)<'A' || str.charAt(i)>'z'){
      rc=false;
      break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: </p>
 *@param str
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkAge(age){
 var rc=true;
 if(isNumber(age)==false) {
  rc= false;
 } else if(age>=200) {
  rc= false;
 } else if(age<0){
  rc=false;
 }
 return rc;
}

/*
 *<p>Description: ǷȫΪո</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isSpace(str) {
    for(i=0;i<str.length-1;i++) {
  if(str.charAt(i)!=' ') {
      if(str.charAt(i)!=0xa1||str.chatAt(i+1)!=0xa1)
   return false;
      else
   i++;
  }
    }
    if(str.charAt(i)!=' ')
 return false;
    return true;
}

/*
 *<p>Description: Ú¸Ö®</p>
 *@param year Úµ
 *@param month ڵ·
 *@param day
 *@param d0
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateIsLargerThanDate(year, month, day, d0){
  return isLargerThanNow(year, month, day,d0);
}

function isLargerThanNow(year, month, day, d0){
    var rc=false;
    if(!checkDateByFields(year,month,day)){
     rc=false;
    } else{
  var d1=new Date(year,month-1,day);
  if(d1.getTime()>d0.getTime()){
      rc=true;
  }
    }
    return rc;
}

/*
 *<p>Description: ڵǰ֮</p>
 *@param year Úµ
 *@param month ڵ·
 *@param day
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateIsLargerThanNow(year, month, day){
 var Y = SERVER_SYSTEM_DATE.substring(6);
 var M = SERVER_SYSTEM_DATE.substring(3,5);
 var D = SERVER_SYSTEM_DATE.substring(0,2);
 var nowdate=new Date(Y,M-1,D);
    return isLargerThanNow(year,month,day,nowdate);
}

/*
 *<p>Description: ȽǷһ£һ·false,ò·µ»true</p>
 *@param date1 ĵһ
 *@param date2 ĵڶ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isDatesBetweenOneMonth(date1,date2){
 var rc = true;
 var y1 = date1.substring(6);
 var m1 = date1.substring(3,5);
 var d1 = date1.substring(0,2);
       var y2 = date2.substring(6);
 var m2 = date2.substring(3,5);
 var d2 = date2.substring(0,2);
       if(y1!=y2) {
          if(y1>y2){
            if(parseFloat(y2)+1!=y1) rc=false;
            else if(parseFloat(m2)!=12||parseFloat(m1)!=1) rc=false;
                 else if(d2<=d1) rc=false;
          }
          if(y1<y2){
            if(parseFloat(y1)+1!=y2) rc=false;
            else if(parseFloat(m1)!=12||parseFloat(m2)!=1) rc=false;
                 else if(d1<=d2) rc=false;
          }
       }else {
          if(m1>m2){
             if(parseFloat(m2)+1!=m1) rc = false;
             else if(d2<=d1) rc = false;
          }
          if(m1<m2){
            if(parseFloat(m1)+1!=m2) rc = false;
            else if(d1<=d2) rc = false;
          }
 }
       return rc;
}

/*
 *<p>Description: ǷΪǰĺϷ</p>
 *@param str1  yyyy-MM-dd
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isPastDate(str1) {
    if (str1 + "" == "undefined" || str1 == null){
 return false;
    }
    var y,m,d;
    var i;
    i = str1.indexOf("-");
    if (i == -1 || i == str1.length) { return false; }
    y = str1.substring(0, i);
    str1 = str1.substring(i + 1);

    i = str1.indexOf("-");
    if (i == -1 || i == str1.length) { return false; }
    m = str1.substring(0, i);

    d = str1.substring(i + 1);

    return !dateIsLargerThanNow(y,m,d);
}

/*
 *<p>Description: ıǷϷ</p>
 *@param str ë±£
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkPolicyCode(str){
   //XXX-X or XXXXX
   var rc = true;
   var len = 10;
   if(!isUndefined(str)&&str!=""){
     var aryStr = str.split("-");
     if(aryStr.length==1){
       if(str.length>10)
         rc = false;
       else{
         if(!isNumber(str))
           rc = false;
         else{
           str = preFillZero(str,len);
           var checkNum = getCheckDigit(str);
           if(checkNum!=str.charAt(9))
             rc = false;
         }
       }
     }else{
       if(aryStr.length==2){
         if(aryStr[0].length>9||aryStr[1].length!=1)
           rc = false;
         else{
           if(!isNumber(aryStr[0])||!isNumber(aryStr[1]))
             rc = false;
           else{
             var preStr = preFillZero(aryStr[0],len-1);
             var checkNum = getCheckDigit(preStr);
             if(checkNum!=aryStr[1])
               rc = false;
           }
         }
       }else{
         rc = false;
       }
     }
   }
   return rc;
}

/*
 *<p>Description: ͶǷϷ</p>
 *@param str Ͷ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkApplyCode(str){
  //XX/XXXXX/XX
  var rc = true;
  if(!isUndefined(str)&&str!=""){
     var aryStr = str.split("/");
     if(aryStr.length==1){
       if(str.length>10||str.length<8)
         rc = false;
       else
         if(!isNumber(str.substring(str.length-7)))
           rc = false;
     }else{
       if(aryStr.length==3){
         if(aryStr[0].length>3||aryStr[0].length<1||aryStr[1].length!=5||aryStr[2].length!=2)
           rc = false;
       else
         if(!isNumber(aryStr[1])||!isNumber(aryStr[2]))
           rc = false;
       }else{
         rc = false;
       }
     }
  }
  return rc;
}

/*
 *<p>Description: жһַǷַָͷ</p>
 *@param str Ö·
 *@param start ָͷַ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function startWith(str,start){
 try{
    return (str.substring(0,start.length)==start);
 }catch(ex){
    return false;
 }
}

/*
 *<p>Description: жһַǷַָβ</p>
 *@param str Ö·
 *@param end ָβַ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function endWith(str,end){
 try{
    return (str.substring(str.length-end.length)==end);
 }catch(ex){
    return false;
 }
}

/*
 *<p>Description: Ƿŵ룬ȥ˳ź088βΪŵ룬</p>
 *@param code ı
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isGroupPolicyCode(code){
 return endWith(getPureCode(code),"088");
}

/*
 *<p>Description: ǷŵͶ룬ȥ˳ź050βΪŵͶ룬</p>
 *@param code Ͷ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isGroupApplyCode(code){
 return endWith(getPureCode(code),"050");
}

/*
 *<p>Description: ǷǷϹĸͶ룬ȥ˳ź001βΪǸͶ룬</p>
 *@param code Ͷ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidIndvApplyCode(code) {
 return isValidApplyCode(code,"001");
}

/*
 *<p>Description: ǷǷϹŵͶ룬ȥ˳ź050βΪŵͶ룬</p>
 *@param code Ͷ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidGroupApplyCode(code) {
 return isValidApplyCode(code,"050");
}

/*
 *<p>Description: ǷǷϹͶ룬ȥ˳ź001βΪǸͶ룬ǣ
                  ȥ˳ź050βΪŵͶ룬</p>
 *@param code Ͷ
 *@param suffix Ͷ׺:001ŵ:050
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isValidApplyCode(code,suffix) {
 var result = false;
 //ȡͶǰIJ
 var pureCode = getPureCode(code);
 //Ç·10λ
 result = pureCode.length == 15;
 if (result == false) return false;
  //Ç·È«
  for(i=0; i < pureCode.length - 1; i++) {
   if (pureCode.charAt(i)<'0' || pureCode.charAt(i)>'9'){
    result = false;
    break;
   }
  }
 if (result == false) return false;
 //ϱò·µ»
 if (startWith(pureCode,"00")) return true;
 //Ç·(001 ŵ050)β
 result = endWith(pureCode,suffix);
 if (result == false) return false;
 //У
 //Ϻֳ97ǷΪ1
 var crc;
 if (startWith(pureCode,"0")) {
    crc = pureCode.substring(1,10) + pureCode.substring(12,15) + pureCode.substring(10,12);
 } else {
    crc = pureCode.substring(0,10) + pureCode.substring(12,15) + pureCode.substring(10,12);
 }
 result = (parseInt(crc) % 97) == 1;
 return result;
}

/*
 *<p>Description: E-mailÇ·È·(validate email return boolean value)</p>
 *@param str e-mail
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkEmail(str){
    var CHAR_LETTER_NUMERIC=1;
    var CHAR_UNDERLINE=2;
    var CHAR_DOT=3;
    var CHAR_AT=4;
    var CHAR_DIVIDE=5;
    var CHAR_END=6;
    var CHAR_OTHER=7;
    var DIV_CHAR=',';

    var rc=true;
    if (isUndefined(str)){
 rc=false;
 return rc;
    } else if(str.length==0){
 rc=true;
 return rc;
    }

    var exit_flag=false;
    var total_char=str.length;
    var pos=0;
    var cur_char;
    var cur_status=0;
    while((pos<=total_char) && (!exit_flag)){
 if(pos==total_char){
   cur_char=CHAR_END;
 }
 else if (str.charAt(pos)=='.'){
   cur_char=CHAR_DOT;
 }
 else if (str.charAt(pos)==DIV_CHAR){
   cur_char=CHAR_DIVIDE;
 }
 else if(str.charAt(pos)=='_'){
   cur_char=CHAR_UNDERLINE;
 }
 else if(str.charAt(pos)=='@'){
   cur_char=CHAR_AT;
 }
 else if(((str.charAt(pos)>='a')&&(str.charAt(pos)<='z'))||((str.charAt(pos)>='A')&&(str.charAt(pos)<='Z'))||((str.charAt(pos)>='0')&&(str.charAt(pos)<='9'))||(str.charAt(pos)=='-')){
   cur_char=CHAR_LETTER_NUMERIC;
 }
 else{
   cur_char=CHAR_OTHER;
 }
 switch (cur_status){
   case -1://error
     rc=false;
     exit_flag=true;
     break;

   case 0://begin status
     if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
       cur_status=1;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 1://user name
     if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
       cur_status=1;
     }
     else if(cur_char==CHAR_AT){
       cur_status=2;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 2://@
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=6;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;

   case 6://"."
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=6;
     }
     else if(cur_char==CHAR_DOT){
       cur_status=3;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;

   case 3://fisrt domain name
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=4;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 4://not first domain name
     if(cur_char==CHAR_LETTER_NUMERIC){
       cur_status=4;
     }
     else if(cur_char==CHAR_DOT){
       cur_status=3;
     }
     else if(cur_char==CHAR_DIVIDE){
       cur_status=0;
     }
     else if(cur_char==CHAR_END){
       cur_status=5;
     }
     else{
       rc=false;
       cur_status=-1;
     }
     break;
   case 5://ok
     rc=true;
     exit_flag=true;
     break;
   default:
     rc=false;
     exit_flag=true;
     break;
 }
 pos++;
    }
    return rc;
}

/*
 *<p>Description: ƶ绰Ƿȷ(validate mobile phone return boolean value)</p>
 *@param str ƶ绰
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMobile(str,country) {
 return checkPhone(str,country);
}

/*
 *<p>Description: ַǷΪdouble(validate double number return boolean value)</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isDouble(str){
    var rc=true;
    oneDecimal=false;
    if (isUndefined(str)){
  rc=false;
    } else{
 for(i=0;i<str.length;i++){
     ch=str.charAt(i);
     if(i==0 && ch=='-'){
   continue;
     }
     if(ch=="." && !oneDecimal){
   oneDecimal=true;
   continue;
     }
     if ((ch< "0") || (ch >'9')){
   rc=false;
   break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: ַǷΪ(validate currency number return boolean value)</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCurrency(str){
    var rc=true;
    oneDecimal=false;
    if (isUndefined(str)){
 rc=false;
    } else{
 for(i=0;i<str.length;i++){
     ch=str.charAt(i);
     if(i==0 && ch=='-'){
  continue;
     }
     if(ch=="." && !oneDecimal){
  oneDecimal=true;
  continue;
     }
     if (!((ch>= '0' && ch <='9')||ch==',')){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: ոֵͣǷڸСֵͷΪvalue,date,number,currency
                  (validate if value < minValue and return boolean value)</p>
 *@param str Ö·
 *@param minstr Сֵ
 *@param formatType
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMinValue(str,minstr,formatType){
    var rc = true;
    if (isUndefined(str)){
 rc = false;
    }else{
  if (formatType=="number"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
  if (formatType=="currency"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
  if (formatType=="date"){
      if(str!="" && checkDate(str)) {
   var formatStr = formatDate(str,"yyyy-MM-dd");
   var formatMinStr = formatDate(minstr,"yyyy-MM-dd");
   if (formatStr < formatMinStr) rc = false;
      }
  }
  if (formatType=="value"){
      if(str!="") {
   if (parseFloat(numberTrim(str)) < parseFloat(numberTrim(minstr))) rc = false;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: ոֵͣǷСڸֵͷΪvalue,date,number,currency
                  (validate if value > maxValue and return boolean value)</p>
 *@param str Ö·
 *@param maxstr Öµ
 *@param formatType
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkMaxValue(str,maxstr,formatType){
    var rc = true;
    if (isUndefined(str)){
  rc = false;
    }else{
  if (formatType=="number"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
  if (formatType=="currency"){
      if(str!="" && checkCurrency(str)) {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
  if (formatType=="date"){
      if(str!="" && checkDate(str)) {
   var formatStr = formatDate(str,"yyyy-MM-dd");
   var formatMaxStr = formatDate(maxstr,"yyyy-MM-dd");
   if (formatStr > formatMaxStr) rc = false;
      }
  }
  if (formatType=="value"){
      if(str!="") {
   if (parseFloat(numberTrim(str)) > parseFloat(numberTrim(maxstr))) rc = false;
      }
  }
    }
    return rc;
}

/*
 *<p>Description: ַǷΪnumber(validte number type return boolean value)</p>
 *@param str Ö·
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function isNumber(str){
    var rc=true;
    if (isUndefined(str)){
  rc=false;
    } else if(str.length==0){
  rc=false;
    } else {
 for(i=0;i<str.length;i++){
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
  rc=false;
  break;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: ĵıͣȼУλ㷨ıǷϷ(validate the document code return boolean value)</p>
 *@param str ı
 *@param typeCode
 *@param nLength Ö¸
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkDocCode(str,typeCode,nLength){
 var rc=true;
 var strLength = str.length;
 if (isUndefined(str)){
  rc=false;
    } else {
 //check code length
 if(strLength != nLength) {
     rc = false;
 }else{
     //check code type
            var checkNum = new Array(9,7,3,2,8,7,4,3,2);
     if(typeCode == 1){
  //check code arithmetic
  var check = 10-(str.charAt(0)*checkNum[0]+str.charAt(1)*checkNum[1]+str.charAt(2)*checkNum[2]+
                            str.charAt(3)*checkNum[3]+str.charAt(4)*checkNum[4]+str.charAt(5)*checkNum[5]+
                            str.charAt(6)*checkNum[6]+str.charAt(7)*checkNum[7]+str.charAt(8)*checkNum[8])%10;
               if(check!=str.charAt(9)) rc = false;
     }
 }
    }
    return rc;
}

/*
 *<p>Description: ijǷָ(validate the code length return boolean value)</p>
 *@param str ı
 *@param codeLength Ö¸
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkCodeLength(str,codeLength){
   var rc=true;
   if (isUndefined(str)){
 rc=false;
    } else {
 if(str.length>codeLength)  rc=false;
    }
   return rc;
}

/*
 *<p>Description: ʺǷȷ(validate the bank account return boolean value)</p>
 *@param str ʺ
 *@return booleanÖµtrue or false
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkBankAccount(str){
    var rc = true;
    return rc;
}

/*
 *<p>Description: ȽڵĴС</p>
 *@param strDate1 ĵһ
 *@param strDate2 ĵڶ
 *@return 0È£
          1strDate1strDate2
         -1strDate1СstrDate2
          2Ú·Ç·
          3ì³£.
 *<p>Create Time: 2004-07-01</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function dateCompare(strDate1,strDate2){
    var rc = 3;
    if(isUndefined(strDate1)||strDate1==""||!checkDate(strDate1)
        ||isUndefined(strDate2)||strDate2==""||!checkDate(strDate2)){
 rc = 2;
    }else{
      try{
       var formatStr1 = formatDate(strDate1,"yyyy-MM-dd");
       var formatStr2 = formatDate(strDate2,"yyyy-MM-dd");
       if (formatStr1 < formatStr2) rc = -1;
       if (formatStr1 > formatStr2) rc = 1;
       if (formatStr1 == formatStr2) rc = 0;
      }catch(ex){
        rc = 3;
        return rc;
      }
    }
    return rc;
}

/*
 *<p>Description: proposalNoÈ·</p>
 *@param proposalNo proposalNo
 *@return 0È·
         -1NO.È´
         -2λϵǰʱ䣻
         -3кŲȷ.
 *<p>Create Time: 2004-10-15</p>
 *@author: qiang.zhao
 *@version 1.0
 */
function checkProposalNo(proposalNo){
  var rc = 0;
  var dateLength = SERVER_SYSTEM_DATE.length;
  var lastPart = SERVER_SYSTEM_DATE.substring(dateLength-2);
  if(!isUndefined(proposalNo)&&proposalNo!=""){
    if(proposalNo.length>10||proposalNo.length<8)
        return -1;
    if(proposalNo.substring(proposalNo.length-2)!=lastPart)
     if(parseFloat(proposalNo.substring(proposalNo.length-2))+1!=lastPart||SERVER_SYSTEM_DATE.substring(3,5)!="01")
         return -2;
    if(!isNumber(proposalNo.substring(proposalNo.length-7,proposalNo.length-2)))
    return -3;
  }
  return rc;
}

/**
 * ǷȫΪո AllSpace
 */
function AllSpace(str) {
    for(i=0;i<str.length-1;i++) {
        if(str.charAt(i)!=' ') {
            if(str.charAt(i)!=0xa1||str.chatAt(i+1)!=0xa1)
                return false;
            else
                i++;
        }
    }
    if(str.charAt(i)!=' ')
        return false;
    return true;
}

/**
 * ǷȫΪո AllSpace
 */
function allSpace(str) {
    return AllSpace(str);
}

/**
 * // 1.ǷȫΪ
 */
function CheckNumber(str){
    var rc=true;
    if (str+"" == "undefined" || str == null){
        rc=false;
    } else if(str.length==0){
 rc=false;
    } else {
 for(i=0;i<str.length;i++){
     if(str.charAt(i)<'0' || str.charAt(i)>'9'){
         rc=false;
         break;
     }
 }
    }
    return rc;
}

function checkNumber(str){
    return CheckNumber(str);
}

function getCheckDigit(str){
  var checkNum = new Array(9,7,3,2,8,7,4,3,2);
  //check code arithmetic
  var check = 10-(str.charAt(0)*checkNum[0]+str.charAt(1)*checkNum[1]+str.charAt(2)*checkNum[2]+
              str.charAt(3)*checkNum[3]+str.charAt(4)*checkNum[4]+str.charAt(5)*checkNum[5]+
              str.charAt(6)*checkNum[6]+str.charAt(7)*checkNum[7]+str.charAt(8)*checkNum[8])%10;
  if (check==10) check = 0;
  return check;
}

/*
 * 根据转换后的format格式,拆分年,月,日
 */
function dateFormatAndValidate(textValue,format) {
 var bValid = true; 
    var focusField = null;
    var i = 0;
    var fields = new Array();              
    var value = textValue;
  var datePattern = format;
    if ((value.length > 0) && (datePattern.length > 0)) {
       var MONTH = "MM";
       var DAY = "dd";
       var YEAR = "yyyy";
       var orderMonth = datePattern.indexOf(MONTH);
       var orderDay = datePattern.indexOf(DAY);
       var orderYear = datePattern.indexOf(YEAR);
 
  if(orderYear == -1){
   YEAR = "yy";
   orderYear = datePattern.indexOf(YEAR);
  }

  if(orderDay == -1){
   return validateDateWithoutDay(textValue,format);
  }
  if(orderYear == -1){
   return validateDateWithoutYear(textValue,format);
  }
  
  if ((orderDay < orderYear && orderDay > orderMonth)) { //  MM/dd/yyyy
   var iDelim1 = orderMonth + MONTH.length; //0+2
         var iDelim2 = orderDay + DAY.length;  //3+2     
   var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); // '/'
         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); // '/'
   if(CheckNumber(value)){
    var m = textValue.substring(orderMonth, MONTH.length);
    var d = textValue.substring((orderDay - 1), (orderDay - 1)+DAY.length);
    var y = textValue.substring((orderYear - 2), (orderYear - 2)+YEAR.length);
    value = m+delim1+d+delim2+y;
   }

         if (iDelim1 == orderDay && iDelim2 == orderYear) {
          dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})(\\d{"+DAY.length+"})(\\d{"+YEAR.length+"})$");
   } else if (iDelim1 == orderDay) {
    dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})(\\d{"+DAY.length+"})[" + delim2 + "](\\d{"+YEAR.length+"})$");
   } else if (iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})[" + delim1 + "](\\d{"+DAY.length+"})(\\d{"+YEAR.length+"})$");
   }
   else {
    dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})[" + delim1 + "](\\d{"+DAY.length+"})[" + delim2 + "](\\d{"+YEAR.length+"})$");
   }
   var matched = dateRegexp.exec(value);
   if(matched != null) {
          if (!isValidDate(matched[2], matched[1], matched[3])) {
           if (i == 0) {
                 //focusField = form[oDate[x][0]];
                 }
                //fields[i++] = oDate[x][1];
                bValid =  false;
    }
   } else {
          if (i == 0) {
    //focusField = form[oDate[x][0]];
             }
             //fields[i++] = oDate[x][1];
             bValid =  false;
   }
  } else if ((orderMonth < orderYear && orderMonth > orderDay)) { // dd/MM/yyyy
   var iDelim1 = orderDay + DAY.length;
   var iDelim2 = orderMonth + MONTH.length;
   var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
            var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
   
   if(CheckNumber(value)){    
    var d = textValue.substring(orderDay, DAY.length);
    var m = textValue.substring((orderMonth-1), (orderMonth-1)+MONTH.length);
    var y = textValue.substring((orderYear - 2), (orderYear - 2)+YEAR.length);
    value = d+delim1+m+delim2+y;
   }
                 
            if (iDelim1 == orderMonth && iDelim2 == orderYear) {
             dateRegexp = new RegExp("^(\\d{"+DAY.length+"})(\\d{"+MONTH.length+"})(\\d{"+YEAR.length+"})$");
            } else if (iDelim1 == orderMonth) {
             dateRegexp = new RegExp("^(\\d{"+DAY.length+"})(\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+YEAR.length+"})$");
            } else if (iDelim2 == orderYear) {
             dateRegexp = new RegExp("^(\\d{"+DAY.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})(\\d{"+YEAR.length+"})$");
            } else {
    dateRegexp = new RegExp("^(\\d{"+DAY.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+YEAR.length+"})$");
   }
   var matched = dateRegexp.exec(value);
            if(matched != null) {
             if (!isValidDate(matched[1], matched[2], matched[3])) {
                 bValid =  false;
    }
   } else {
    bValid =  false;
   }
  } else if ((orderMonth > orderYear && orderMonth < orderDay)) {// yyyy/MM/dd
   var iDelim1 = orderYear + YEAR.length;
   var iDelim2 = orderMonth + MONTH.length;
   var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
   var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
   
   if(CheckNumber(value)){
    var y = textValue.substring(orderYear, YEAR.length);
    var m = textValue.substring((orderMonth-1), (orderMonth-1)+MONTH.length);
    var d = textValue.substring((orderDay - 2), (orderDay - 2)+DAY.length);
    
    value = y+delim1+m+delim2+d;
   }
   
   if (iDelim1 == orderMonth && iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})(\\d{"+MONTH.length+"})(\\d{"+DAY.length+"})$");
   } else if (iDelim1 == orderMonth) {
    dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})(\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+DAY.length+"})$");
   } else if (iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})(\\d{"+DAY.length+"})$");
   } else {
    dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+DAY.length+"})$");
   }
   var matched = dateRegexp.exec(value);
   if(matched != null) {
    if (!isValidDate(matched[3], matched[2], matched[1])) {
     bValid =  false;
    }
   } else {
    bValid =  false;
   }
  } else {
   bValid =  false;
  }
 } 
 window.event.srcElement.value = value;
 return bValid;
}

/*
 * 根据输入的format格式,拆分年月
 * yyyy-MM,MM/yyyy等只有年和月,没有日期的情况
 */
function validateDateWithoutDay(textValue,format) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();              
var value = textValue;
var datePattern = format;
if ((value.length > 0) &&(datePattern.length > 0)) {
 var MONTH = "MM";
 var YEAR = "yyyy";
 var orderMonth = datePattern.indexOf(MONTH);
 var orderYear = datePattern.indexOf(YEAR);

 if(orderYear == -1){
  YEAR = "yy";
  orderYear = datePattern.indexOf(YEAR);
 }

 if (orderMonth < orderYear) { // MM/yyyy
  var iDelim2 = orderMonth + MONTH.length;
  var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
  
  if(CheckNumber(value)){
    var m = textValue.substring(orderMonth, MONTH.length);
    var y = textValue.substring((orderYear - 1), (orderYear - 1)+YEAR.length);
    value = m+delim2+y;
  }
  
  if (iDelim2 == orderYear) {
   dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})(\\d{"+YEAR.length+"})$");
  } else {
   dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+YEAR.length+"})$");
  }
  var matched = dateRegexp.exec(value);
  if(matched != null) {
   if (!isValidYM(matched[1], matched[2])) {
    bValid =  false;
   }
  } else {
   bValid =  false;
  }
 } else if (orderMonth > orderYear) { //yyyy/MM
  var iDelim1 = orderYear + YEAR.length;                       
  var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
  if(CheckNumber(value)){    
    var y = textValue.substring(orderYear, YEAR.length);
    var m = textValue.substring((orderMonth - 1), (orderMonth - 1)+ MONTH.length);
    value = y+delim1+m;
  }
  if (iDelim1 == orderMonth) {
   dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})(\\d{"+MONTH.length+"})$");
  } else{
   //dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})(\\d{"+MONTH.length+"})$");
   dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})$");
  }
  var matched = dateRegexp.exec(value);
  if(matched != null) {
   if (!isValidYM(matched[2], matched[1])) {
    bValid =  false;
   }
  } else {
   bValid =  false;
  }
 } else {
  bValid =  false;
 }
}
window.event.srcElement.value = value;
return bValid;
}

/*
 * 根据输入的format格式,拆分年月
 * MM-dd,dd/MM等只有年和月,没有日期的情况
 */
function validateDateWithoutYear(textValue,format){
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();              
var value = textValue;
var datePattern = format;
if ((value.length > 0) &&(datePattern.length > 0)) {
 var MONTH = "MM";
 var DAY = "dd";
 var orderMonth = datePattern.indexOf(MONTH);
 var orderDay = datePattern.indexOf(DAY);

 if (orderMonth < orderDay) { // MM/dd
  var iDelim2 = orderMonth + MONTH.length;
  var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
  
  if(CheckNumber(value)){
   var m = textValue.substring(orderMonth, MONTH.length);
   var d = textValue.substring((orderDay - 1), (orderDay - 1)+DAY.length);
   value = m+delim2+d;
  }
  
  if (iDelim2 == orderDay) {
   dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})(\\d{"+DAY.length+"})$");
  } else {
   dateRegexp = new RegExp("^(\\d{"+MONTH.length+"})[" + delim2 + "](\\d{"+DAY.length+"})$");
  }
  var matched = dateRegexp.exec(value);
  if(matched != null) {
   //if (!isValidYM(matched[1], matched[2])) {
   if(!isValidDate(matched[2], matched[1],0)){
    bValid =  false;
   }
  } else {
   bValid =  false;
  }
 } else if (orderMonth > orderDay) { // dd/MM
  var iDelim1 = orderDay + DAY.length;                       
  var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
  
  if(CheckNumber(value)){
   var d = textValue.substring(orderDay, DAY.length);
   var m = textValue.substring((orderMonth - 1), (orderMonth - 1)+MONTH.length);    
   value = d+delim1+m;
  }
  
  if (iDelim1 == orderMonth) {
   dateRegexp = new RegExp("^(\\d{"+DAY.length+"})(\\d{"+MONTH.length+"})$");
  } else{
   //dateRegexp = new RegExp("^(\\d{"+YEAR.length+"})(\\d{"+MONTH.length+"})$");
   dateRegexp = new RegExp("^(\\d{"+DAY.length+"})[" + delim1 + "](\\d{"+MONTH.length+"})$");
  }
  var matched = dateRegexp.exec(value);
  if(matched != null) {
   //if (!isValidYM(matched[2], matched[1])) {
   if(!isValidDate(matched[1], matched[2],0)){
    bValid =  false;
   }
  } else {
   bValid =  false;
  }
 } else {
  bValid =  false;
 }
}
window.event.srcElement.value = value;
return bValid;
}

/*
 * 校验日期(月,日)是否符合日期的校验规则
 */
function isValidDate(day, month, year) {
 if (month < 1 || month > 12) {
  return false;
 }
 if (day < 1 || day > 31) {
  return false;
 }
 if ((month == 4 || month == 6 || month == 9 || month == 11) &&(day == 31)) {
  return false;
 }
 if (month == 2) {
 var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
  if (day>29 || (day == 29 && !leap)) {
   return false;
  }
 }
 return true;
}
 
function isValidYM(month, year) {
 if (month < 1 || month > 12) {
  return false;
 }
 return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值