[javascript] 주민등록번호 형식의 유효성을 검사하는 방법은?
주민등록번호는 한국에서 사용되는 개인 식별 번호로, 형식에 맞게 입력되었는지 검사하는 것이 중요합니다. JavaScript를 사용하여 주민등록번호의 유효성을 검사하는 방법을 소개하겠습니다.
function validateResidentRegistrationNumber(residentRegistrationNumber) {
const regex = /^\d{6}-\d{7}$/; // 주민등록번호 정규표현식
if (!regex.test(residentRegistrationNumber)) {
return false; // 형식에 맞지 않으면 유효하지 않음
}
const birthDate = residentRegistrationNumber.substr(0, 6); // 생년월일 추출
const genderDigit = parseInt(residentRegistrationNumber.substr(7, 1), 10) % 2; // 성별 구분 아이디 추출
// 생년월일 체크
const year = parseInt(birthDate.substr(0, 2), 10) + 1900; // 1900년 이후 출생자는 19xx년, 그 이전 출생자는 20xx년
const month = parseInt(birthDate.substr(2, 2), 10);
const day = parseInt(birthDate.substr(4, 2), 10);
const birth = new Date(year, month - 1, day); // 생년월일로 Date 객체 생성
if (birth.getFullYear() !== year || birth.getMonth() + 1 !== month || birth.getDate() !== day) {
return false; // 생년월일이 유효하지 않으면 유효하지 않음
}
// 성별 구분 아이디 체크
const gender = genderDigit === 1 ? '남자' : '여자';
return { valid: true, gender: gender };
}
위의 코드는 validateResidentRegistrationNumber
함수를 정의하고, 해당 함수로 주민등록번호를 유효성 검사하는 기능을 구현한 예시입니다. 정규표현식을 사용하여 주민등록번호의 형식을 검사하고, 생년월일과 성별 정보를 추출하여 유효성을 확인합니다.
사용 예시:
const residentRegistrationNumber = '990101-1234567';
const validationResult = validateResidentRegistrationNumber(residentRegistrationNumber);
if (validationResult.valid) {
console.log('주민등록번호가 유효합니다.');
console.log('성별:', validationResult.gender);
} else {
console.log('주민등록번호가 유효하지 않습니다.');
}
주민등록번호가 유효하고 형식에 맞다면, 위의 예시 코드는 다음과 같은 결과를 출력할 것입니다:
주민등록번호가 유효합니다.
성별: 남자
이 방법을 사용하면 주민등록번호의 형식과 유효성을 간단하게 검사할 수 있습니다.