[JavaScript] 주민등록번호 유효성 검사Language/JavaScript2022. 11. 8. 14:37
Table of Contents
반응형
JavaScript 에서 주민등록번호 유효성 검사 방법에 대해 알아보겠습니다.
주민등록번호란
주민등록번호는 “주민의 거주관계를 파악하고 상시로 인구의 동태를 명확히 하여 행정사무의 적정하고 간이 한 처리를 도모함”(1962년 주민등록법) 등을 목적으로 만든 일련번호로서, 개개인의 신원을 명확하게 구분하는 역할을 한다.
나무위키
내국인과 외국인 주민등록번호 유효성을 검사하는 소스코드입니다.
- 내국인 주민등록번호와 달리 외국인 등록번호는 뒤 7자리 숫자의 첫 숫자가 2000년 이전 출생 외국인에게는 남자는 5, 여자는 6, 2000년 이후 출생 외국인에게는 남자는 7, 여자는 8로 부여하고 있습니다.
- 내국인 주민등록번호 숫자는 1, 2, 3, 4 로 시작됩니다.
<!DOCTYPE html>
<html>
<body>
<label class="font-weight-bold">주민등록번호 입력 :</label>
<div class="d-flex align-items-center">
<input type="text" class="form-control" id="jumin1" required />
<span class="font-weight-bold mx-2">-</span>
<input type="password" class="form-control" id="jumin2" required />
</div>
<button type="button" onclick="validate()">검증</button>
</body>
</html>
const CommonUtil = (function () {
// 내국인/외국인 주민등록번호 유효성 검사
const validRegistrationNumber = function (rn, type) {
rn = rn.split('-').join('');
if (rn.length !== 13) return false;
let checkSum = 0;
for (let i = 0; i < 12; i++) {
checkSum += (rn.substr(i, 1) >> 0) * ((i % 8) + 2);
}
const korMatch = (11 - (checkSum % 11)) % 10 == rn.substr(12, 1);
const frnMatch = (13 - (checkSum % 11)) % 10 == rn.substr(12, 1);
if (type === 'local') return korMatch;
else if (type === 'foreigner') return frnMatch;
else return korMatch || frnMatch;
};
return {
// 주민등록번호가 내국민인지 외국인인지 분류
// 뒤 7자리의 첫번째 숫자가 1,2,3,4 일경우 내국인 / 5,6,7,8 일경우 외국인
validateJumin: function (ssn1, ssn2) {
const ssnType = ssn2.substr(0, 1);
const rn = ssn1 + ssn2;
if (
ssnType == '5' ||
ssnType == '6' ||
ssnType == '7' ||
ssnType == '8'
) {
const type = 'foreigner';
} else {
const type = 'local';
}
return validRegistrationNumber(rn, type);
},
};
})();
document.addEventListener('DOMContentLoaded', function () {
// 주민등록번호 검증 확인
function validate() {
const jumin1 = document.getElementById('jumin1');
const jumin2 = document.getElementById('jumin2');
const ssn1 = jumin1.value;
const ssn2 = jumin2.value;
return CommonUtil.validateJumin(ssn1, ssn2);
}
});
반응형
'Language > JavaScript' 카테고리의 다른 글
[OpenLayers] Custom Icon Feature 추가 (0) | 2022.12.26 |
---|---|
[OpenLayers] Static Image 사용 방법 (0) | 2022.12.21 |
[JavaScript] IE에서 작동하지 않는 BLOB 다운로드 (0) | 2022.11.02 |
[JavaScript] 모달에서 이미지 및 동영상 출력 (0) | 2022.09.25 |
[JQuery] Select Box 제어 (0) | 2022.09.25 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!