반응형
/*****
* 사업자등록번호 체크
* return : boolean
* ex) 111-11-11111
*****/
function check_worknum(resno) {
fmt = /^d{3}-d{2}-d{5}$/;
if(!fmt.test(resno)) return false;
// Check Sum 코드의 유효성 검사
buf = new Array(10);
for (i = 0; i < 3; i++) buf[i] = parseInt(resno.charAt(i));
for (i = 3; i < 5; i++) buf[i] = parseInt(resno.charAt(i + 1));
for (i = 5; i < 10; i++) buf[i] = parseInt(resno.charAt(i + 2));
buf = new Array(10);
for (i = 0; i < 3; i++) buf[i] = parseInt(resno.charAt(i));
for (i = 3; i < 5; i++) buf[i] = parseInt(resno.charAt(i + 1));
for (i = 5; i < 10; i++) buf[i] = parseInt(resno.charAt(i + 2));
multipliers = [1,3,7,1,3,7,1,3,5,1];
for (i = 0, sum = 0; i < 10; i++){
if(i==0 || i==9){
sum += (buf[i] * multipliers[i]);
}else{
sum += (buf[i] * multipliers[i]%10);
if(i==8) sum += Math.floor(buf[i] * multipliers[i] / 10);
}
}
for (i = 0, sum = 0; i < 10; i++){
if(i==0 || i==9){
sum += (buf[i] * multipliers[i]);
}else{
sum += (buf[i] * multipliers[i]%10);
if(i==8) sum += Math.floor(buf[i] * multipliers[i] / 10);
}
}
if (sum % 10 != 0) return false;
return true;
}
}
=======================================================================================
위의 것은 다음것을 참고하여 약간 변형한것임
function chkWorkNumb(strNumb) {
strNumb = strNumb.replace("-","");
if (strNumb.length != 10) {
alert("사업자등록번호가 잘못되었습니다.");
return false;
}
strNumb = strNumb.replace("-","");
if (strNumb.length != 10) {
alert("사업자등록번호가 잘못되었습니다.");
return false;
}
sumMod = 0;
sumMod += parseInt(strNumb.substring(0,1));
sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;
sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;
sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;
sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;
sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;
sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;
sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;
sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;
sumMod += parseInt(strNumb.substring(9,10));
sumMod += parseInt(strNumb.substring(0,1));
sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;
sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;
sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;
sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;
sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;
sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;
sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;
sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;
sumMod += parseInt(strNumb.substring(9,10));
if (sumMod % 10 != 0) {
alert("사업자등록번호가 잘못되었습니다.");
return false;
}
return true;
}
alert("사업자등록번호가 잘못되었습니다.");
return false;
}
return true;
}
반응형
'Story > Javascript' 카테고리의 다른 글
주민등록번호 체크 (0) | 2009.01.19 |
---|---|
법인번호 체크 (0) | 2009.01.19 |
file 필드에 임의의 값을 강제로 입력시 submit 안될경우 (0) | 2009.01.19 |
input 상자안에 숫자값만 입력 받기 (0) | 2009.01.19 |
문자길이 체크 (0) | 2009.01.19 |