주민등록번호 생년월일·성별 읽기와 형식 확인
주민등록번호 앞 7자리로 생년월일·성별·외국인 여부를 읽고, 2020년 10월 이후 번호도 틀리지 않게 확인해요.
무엇이 어려운가요
주민등록번호 뒷자리 첫 숫자는 태어난 세기와 성별을 나타내요(1·2 는 1900년대, 3·4 는 2000년대, 5~8 은 외국인). 앞 7자리만 받는 화면(나이·성별 확인)에서도 이 규칙으로 읽을 수 있어요.
인터넷에 많이 도는 “마지막 자리 검증 공식”은 2020년 10월부터 맞지 않아요. 그 뒤로 새로 받은 번호는 뒤 6자리가 임의 번호라서, 그 공식을 쓰면 올바른 번호도 틀렸다고 나와요.
직접 입력해 보세요
입력한 값은 이 브라우저 안에서만 계산하고 어디에도 보내지 않아요
parseResidentNumber(입력){ birthDate: '1990-01-01', sex: 'male', foreigner: false }isValidResidentNumber(입력)trueformatResidentNumber(입력)'900101-1234567'maskResidentNumber(입력)'900101-1******'
코드
npm install @bestow-ui/korean-utilsimport { formatResidentNumber, isValidResidentNumber, parseResidentNumber } from '@bestow-ui/korean-utils';
parseResidentNumber('900101-1');
// { birthDate: '1990-01-01', sex: 'male', foreigner: false }
parseResidentNumber('900230-1'); // null (2월 30일은 없음)
isValidResidentNumber('900101-1234567'); // true
formatResidentNumber('9001011234567'); // '900101-1234567'알아 둘 점
isValidResidentNumber 는 13자리, 실제로 있는 날짜, 뒷자리 첫 숫자만 봐요. 마지막 검증 숫자는 일부러 보지 않아요.
주민등록번호는 법령에 근거가 있을 때만 수집할 수 있어요(개인정보 보호법 제24조의2). 실제 번호인지는 본인확인 기관 조회가 필요해요.
이 쪽의 입력 칸은 브라우저 안에서만 계산하고 어디에도 보내지 않아요.
React 입력 컴포넌트
ResidentNumberInput( @bestow-ui/react)는 이 함수를 쓰는 입력 칸이에요. 앞·뒤 칸을 나누고 뒷칸은 가려서 입력받아요. 앞 7자리만 받는 모드도 있어요.