728x90
반응형
2021.04.09
16일차
입사 33일차.
회사를 상대로 하는 프로젝트에는 사업자번호, 법인번호, 주민등록번호의 유효성을 체크하는 자바스크립트가 있다.
처음엔 NICE 같은 곳에서 API를 받아 비교하는 방법으로 진행하는 줄 알았으나, 실제로는 입력한 번호가 유효한지 체크하는 알고리즘이 있었다.
이미, 인터넷에 유효성검사에 관한 코드들이 많기 때문에, 최대한 중복되지 않는 직접 만든 코드를 작성해보기로 했다.
1. 주민등록번호 유효성체크
① 출처 : 모바일 개발 Blog's (링크)
② 출처로 가져온 블로그에는 Java의 주민등록번호 유효성 검사 코드가 있다.
③ 아래의 코드는 내가 직접 작성해본 코드다.
// jumin1 = 주민번호 앞 6자리, jumin2 = 주민번호 뒷 7자리 function fn_chkJuminNum(jumin1, jumin2) { // ex_ 123456 - 1234567 // 정규식표현 (숫자만 입력가능) if ( jumin1.match('[^0-9]') ) { alert("주민등록번호는 숫자만 입력해주세요."); return false; } if ( jumin1.length != 6 ) { alert("생년월일은 YYMMDD 형식의 6자리로 입력해주세요."); } const keyArr = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; // 인증키 고정 let step1 = 0; for ( int i = 0; i < jumin1.length; i++ ) { step1 += parseInt( jumin1.substring( i, i+1 ), 10 ) * keyArr[ i ]; } for ( int j = jumin1.length; j < ( jumin.length + jumin2.length ) - 1; j++ ) { step1 += parseInt( jumin2.substring( j, j+1 ), 10 ) * keyArr[ j ]; } const step2 = parseInt( jumin2.substring( 6, 7 ), 10 ); const step3 = (11 - ( step1 % 11 ) ) % 10; if ( step 2 != step3 ) { alert("유효하지 않은 주민등록번호입니다."); $("#jumin1").val(''); $("#jumin1").focus(); return false; } } |
주민등록번호는 입력하지 않는 경우가 많고 외국인의 경우엔 또 다른 유효성 검사방법이 필요하기 때문에 효율적인 코드가 아니다.
포폴에도 딱히 자랑할만한 기능은 아니기 때문에 나만의 보안코드를 만든다면 도움이 될 것 같다.
728x90
반응형
'프론트엔드 > 자바스크립트' 카테고리의 다른 글
[FE/JS] JavaScript로 Json 생성하기 (0) | 2021.04.12 |
---|---|
[FE/JS] fs module (0) | 2021.04.10 |
[FE/JS] 사업자번호 유효성체크 (0) | 2021.04.09 |
[FE/JS] JavaScript ES6 문법정리2 (0) | 2021.04.01 |
[FE/JS] form태그의 자동 Keyup 이벤트 (submit) 막기 (0) | 2021.03.26 |
댓글