1. 자바 스크립트를 이용한 주민등록번호 체킹
2. ASP를 이용한 주민등록번호 체킹.
주민등록번호를 체킹하는 방법은 여러 가지가 있을 수 있습니다. 위의 두 개의 소스는 동일한 소스임을 말씀드리겠습니다. 기존에 제공한 소스가 불안정하다는 시민의 제보(?)로 주민번호체킹 부분을 수정했습니다. asp를 이용하거나, 저와 같이 스크립트를 이용해서, 또한 공식에 대입하는 방법등 여러 가지가 있을 수 있음을 말씀 드립니다. 위의 소스를 보면 fiden 과 liden 은 주민등록 번호의 앞자리와 뒷자리를 뜻하는 것입니다. 회원에 가입하고자 하는 사용자가 수치를 입력하면 앞자리와 뒷자리가 더해져서 jumin 이란 변수에 들어가게 되는 겁니다. (send(form)) 그럼 if 문을 통해서 jumin 이란 변수를 인자값으로 넘기게 됩니다. 그래서 Jumin_chk(jumin) 를 실행 하게 되는 겁니다. 그럼, 철저한 공식에 의해서 주민등록번호를 체킹하게 되는 겁니다. 체킹이 성공적으로 수행하게 되면 리턴(return) 되는 값은 올바른 주민등록번호일 경우 True를 그리구 , 잘못된 주민등록일 경우 false를 리턴하게 되는 겁니다. 그러면 Send(form) 함수의 if 문에서 비교하게 되겠죠? 리턴되는 값이 false면 'alert("주민등록번호가 올바르지 않습니다."); 란 명령을 실행하게 되는 거구요. 제대로 입력이 되어 있다면 submit();를 수행함으로써 페이지를 전송하게 되는 겁니다. 자바스크립트에서 문자열을 나누는 함수는 it.substring(나눌 문자열시작 ,나눌갯수)입니다. it.substring(5,1) 은 it(주민번호 13자리) 중에서 5번째문자에서 1개를 자르게 되는겁니다. -------------------------------------------------------------------------------- 주민번호를 구하는 공식입니다. -------------------------------------------------------------------------------- A : 750803-1659737 B : 234567-892345 A 문자는 실제 주민등록번호이구 B 문자는 대입할 문자입니다. B 문자는 주민등록번호보단 1문자 적습니다. 1. 먼저 각각의 자릿수에 A 와 B를 곱하여 누적을 구합니다. (주민번호의 마지막 자리는 계산하지 않습니다.) 예 ) TOTAL=(7*2)+(5*3)+(0*4).... 2. 그럼, 결과가 얼마가 나올까요? 정답 : 232 그럼, 그 결과를(TOTAL) 11로 나눗니다. 그리구, 그 나머지 값을 구합니다. 나머지 값입니다. 예) 232/11=12.....1 3. 나머지는 1이 나옵니다. 그럼 또다시 11로 나머지 값을 뺍니다. 예) C=11-1 4. C이란 변수엔 '10' 이 들어 가겠죠? 그럼, 이 결과 같과 주민등록번호의 마지막 결과 값이 같으면? 올바른 주민등록 번호란 뜻입니다. 만약 결과가 두자리일 경우는 마지막 문자 하나만 비교를 하게 되는 겁니다. 즉 위의 결과가 10이 나왔기 때문에 주민등록 마지막 자리 '7' 과 '0'을 비교하게 되는 거죠... 위에서 if 문을 여러개 쓴 이유는 right(a,1) 같은 함수를 자바스크립트에서 지원하지 않기 때문이다. 그래서 위에 있는 마지막 주민등록번호 '7' 과 결과값 '0'은 같지 않습니다. 틀린 주민등록 번호란 뜻이죠. 위의 소스는 다음과 같은 공식을 그대로 적용한 예라고 할 수 있습니다. 물론 다른 방법으로도 얼마든지 계산할 수 있는 겁니다. 그럼, 허접 설명은 여기까지만 합지여..^^;
|
|||||||||||