'주민번호'에 해당되는 글 1건

  1. 2007/09/01 사업자/법인/주민 등록 번호 체크 함수

어디서 복사해논건지...-0-;;;;;
뭐 쓸때마다 만들기도 찾기도 귀찮고......해서 올려두는,......

=========================================



/*****
  * 사업자등록번호 체크
  * return : boolean
  * ex) 111-11-11111
  *****/
function check_worknum(resno) {
    fmt = /^\\d{3}-\\d{2}-\\d{5}$/;
    if(!fmt.test(resno)) return false;
    // Check Sum 코드의 유효성 검사


    buf = new Array(10);
    for (i = 0; i < 3; i++) buf[i] = parseInt(resno.charAt(i));
    for (i = 3; i < 5; i++) buf[i] = parseInt(resno.charAt(i + 1));
    for (i = 5; i < 10; i++) buf[i] = parseInt(resno.charAt(i + 2));
    multipliers = [1,3,7,1,3,7,1,3,5,1];
    for (i = 0, sum = 0; i < 10; i++){
        if(i==0 || i==9){
            sum += (buf[i] * multipliers[i]);
        }else{
            sum += (buf[i] * multipliers[i]%10);
            if(i==8) sum += Math.floor(buf[i] * multipliers[i] / 10);
        }
    }
    if (sum % 10 != 0) return false;
    return true;
}
 


 /*****
  * 주민등록번호 체크
  * return : boolean
  * ex) 111111-1111111
  * TODO : 주민등록번호 뒷자리 첫번째 자리에 7,8 로 시작하는 주민등록 번호가 있다. 이것은 귀화한 사람에게 발급되는 번호라고 한다
  *    할 수 있다면 체크했으면 좋겠는데 아직은 위의 번호를 가진 사람도 보지 못했거니와 유효성도 같은 방식으로 해야 하는지 알지 못하겠다.
  *****/
function check_regnum(resno){
 
    // 주민번호의 형태와 7번째 자리(성별) 유효성 검사
    fmt = /^\\d{6}-[1234]\\d{6}$/;
    if(!fmt.test(resno)) return false;


 
    // 날짜 유효성 검사
    birthYear   = (resno.charAt(7) <= \"2\") ? \"19\" : \"20\";
    birthYear  += resno.substr(0, 2);
    birthMonth = resno.substr(2, 2) - 1;
    birthDate    = resno.substr(4, 2);
    birth          = new Date(birthYear, birthMonth, birthDate);
 
    if(birth.getYear() % 100 != resno.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) return false;
 
    // Check Sum 코드의 유효성 검사
    buf = new Array(13);
    for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
    for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
 
    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
 
    if((11 - (sum % 11)) % 10 != buf[12]) return false;
 
    return true;
}


/*****
  * 법인번호 체크
  * return : boolean
  * ex) 111111-1111111
  *****/
function check_corpnum(resno){
    fmt = /^\\d{6}-\\d{7}$/;
    if(!fmt.test(resno)) return false;
    // Check Sum 코드의 유효성 검사
    buf = new Array(13);
    for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
    for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
 
    multipliers = [1,2,1,2,1,2,1,2,1,2,1,2];
    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
    if(10 - sum.toString().substring(sum.toString().length*1 - 1,sum.toString().length*1)*1 != buf[12]) return false;
 
    return true;
}

2007/09/01 23:01 2007/09/01 23:01