반응형
/*****
* 주민등록번호 체크
* return : boolean
* ex) 111111-1111111
* TODO : 주민등록번호 뒷자리 첫번째 자리에 7,8 로 시작하는 주민등록 번호가 있다. 이것은 귀화한 사람에게 발급되는 번호라고 한다
* 할 수 있다면 체크했으면 좋겠는데 아직은 위의 번호를 가진 사람도 보지 못했거니와 유효성도 같은 방식으로 해야 하는지 알지 못하겠다.
*****/
function check_regnum(resno){
// 주민번호의 형태와 7번째 자리(성별) 유효성 검사
fmt = /^d{6}-[1234]d{6}$/;
if(!fmt.test(resno)) return false;
// 날짜 유효성 검사
birthYear = (resno.charAt(7) <= "2") ? "19" : "20";
birthYear += resno.substr(0, 2);
birthMonth = resno.substr(2, 2) - 1;
birthDate = resno.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);
if(birth.getYear() % 100 != resno.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) return false;
// Check Sum 코드의 유효성 검사
buf = new Array(13);
for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
if((11 - (sum % 11)) % 10 != buf[12]) return false;
return true;
}
반응형
'Story > Javascript' 카테고리의 다른 글
날짜 유효성 검사 (0) | 2009.02.03 |
---|---|
Firefox 에서 this.parentElement.parentElement.rowIndex 동작하지 않는다. (0) | 2009.01.25 |
법인번호 체크 (0) | 2009.01.19 |
사업자등록번호 체크 (0) | 2009.01.19 |
file 필드에 임의의 값을 강제로 입력시 submit 안될경우 (0) | 2009.01.19 |