자바스크립트(JavaScript) | 주민등록번호, 법인등록번호, 사업자등록번호 유효성 체크
자리수 + 유효성 체크
1. 주민등록번호 유효성 체크
- isJuminNo(13자리) : 유효할 경우 true를 리턴함
isJuminNo('xxxxxx-xxxxxxx');
isJuminNo('xxxxxxxxxxxxx');
2. 법인등록번호 유효성 체크
- isBubinNo(13자리) : 유효할 경우 true를 리턴함
isBubinNo('xxxxxx-xxxxxxx');
isBubinNo('xxxxxxxxxxxxx');
3 사업자등록번호 유효성 체크
- isCorporateRegiNo(10자리) : 유효할 경우 true를 리턴함
isCorporateRegiNo('xxx-xx-xxxxx');
isCorporateRegiNo('xxxxxxxxxx');
// 주민등록번호 유효성 체크 function isJuminNo(no) { // -제거 no = no.split('-').join(''); var arr_ssn = []; var compare = [2,3,4,5,6,7,8,9,2,3,4,5]; var sum = 0; // 입력값 체크 if (no.match('[^0-9]')) { return false; } // 자리수 체크 if (no.length != 13) { return false; } // 공식: M = (11 - ((2×A + 3×B + 4×C + 5×D + 6×E + 7×F + 8×G + 9×H + 2×I + 3×J + 4×K + 5×L) % 11)) % 10 for (var i = 0; i < 13; i++) { arr_ssn[i] = no.substring(i,i+1); } for (var i = 0; i < 12; i++) { sum = sum + (arr_ssn[i] * compare[i]); } sum = (11 - (sum % 11)) % 10; if (sum != arr_ssn[12]) { return false; } return true; } // 법인등록번호 유효성 체크 function isBubinNo(no) { // -제거 no = no.split('-').join(''); var as_Biz_no = String(no); var isNum = true; var I_TEMP_SUM = 0 ; var I_TEMP = 0; var S_TEMP; var I_CHK_DIGIT = 0; if (no.length != 13) { return false; } for (var index01 = 1; index01 < 13; index01++) { var i = index01 % 2; var j = 0; if(i == 1) j = 1; else if( i == 0) j = 2; I_TEMP_SUM = I_TEMP_SUM + parseInt(as_Biz_no.substring(index01-1, index01),10) * j; } I_CHK_DIGIT= I_TEMP_SUM%10; if (I_CHK_DIGIT != 0 ) I_CHK_DIGIT = 10 - I_CHK_DIGIT; if (as_Biz_no.substring(12, 13) != String(I_CHK_DIGIT)) return false; return true; } // 사업자등록번호 유효성 체크 function isCorporateRegiNo(no) { var numberMap = no.replace(/-/gi, '').split('').map(function (d){ return parseInt(d, 10); }); if (numberMap.length == 10) { var keyArr = [1, 3, 7, 1, 3, 7, 1, 3, 5]; var chk = 0; keyArr.forEach(function(d, i){ chk += d * numberMap[i]; }); chk += parseInt((keyArr[8] * numberMap[8])/ 10, 10); return Math.floor(numberMap[9]) === ( (10 - (chk % 10) ) % 10); } return false; }
댓글
댓글 쓰기