자바스크립트 주민등록번호
<script type="text/javascript">
function sendit() {
var mName = document.getElementById("mName");
var mJumin1 = document.getElementById("mJumin1");
var mJumin2 = document.getElementById("mJumin2");
var mJuminNumber = mJumin1.value + mJumin2.value;
//주민번호 앞자리(mJumin1)에 공백을 제거하고도 아무 입력이 되지않았을 경우
if(mJumin1.value.replace(/\s/g,"") == "")
{
alert("주민등록번호 앞자리를 입력해 주세요");
mJumin1.focus();
return false;
}
//주민번호 앞자리(mJumin1)가 6자리가 안 될 경우
if(mJumin1.value.length < 6)
{
alert("주민등록번호 앞자리를 정확히 입력해 주세요");
mJumin1.focus();
return false;
}
//주민번호 뒷자리(mJumin2)에 공백을 제거하고도 아무 입력이 되지않았을 경우
if(mJumin2.value.replace(/\s/g,"") == "")
{
alert("주민등록번호 뒷자리를 입력해 주세요");
mJumin2.focus();
return false;
}
//주민번호 뒷자리(mJumin2)가 7자리가 안 될 경우
if(mJumin2.value.length < 7)
{
alert("주민등록번호 뒷자리를 정확히 입력해 주세요");
mJumin2.focus();
return false;
}
//올바른 주민등록번호가 입력되는지 검사
var total = 0;
var cnt = 2;
for (var i = 0; i < mJuminNumber.length - 1; i++) {
if (cnt > 9) {
cnt = 2;
}
total += parseInt(mJuminNumber.charAt(i)) * cnt;
cnt++;
}
var check = (11 - (total % 11)) % 10;
if(parseInt(check) != parseInt(mJuminNumber.charAt(12)))
{
alert("잘못된 주민등록번호 입니다.");
mJumin1.value = "";
mJumin2.value = "";
mJumin1.focus();
return false;
}
}
</script>
Ex) 901107 - 1111118
주민등록번호 확인은 맨 마지막 자릿수를 제외하고 (예제에서는 '8'을 제외하고)
첫 번째 자리부터 차례대로( 1 * 2, 0 * 3,1 * 4, 1 * 5, 0 * 6, 7 * 7, 1 * 8, 1 * 9, 1 * 2, 1 * 3, 1 * 4, 1 * 5 )곱하여
모두 더한 값( 2 + 0+ 4 + 5 + 0 + 49 + 8 + 9 + 2 + 3 + 4 + 5 )을 11로 나눈 나머지를
다시한번 11에서 마이너스 한 값이 마지막 자릿수와 같으면 올바른 주민번호라고 한다.
[100%는 아니다. 예외의 경우도 있다]
<td><strong>이름</td>
<td><input name="mName" type="text" id="mName" size="10" /></td>
<td><strong>주민등록번호</td>
<td><input name="mJumin1" type="text" id="mJumin1" maxlength="6"/>
- <input name="mJumin2" type="password" id="mJumin2" maxlength="7" />
버튼
<img src="button_ok.gif" alt="확인" onclick="javascript:sendit();"/>