주민번호체크
function juminCheck(juminno)
{
var boolCheck = true;
var pattern = /(^[0-9]{13}$)/;
if (!pattern.test(juminno)) boolCheck = false;
else
{
var sum_1 = 0;
var sum_2 = 0;
var at=0;
sum_1 = (juminno.charAt(0)*2)+
(juminno.charAt(1)*3)+
(juminno.charAt(2)*4)+
(juminno.charAt(3)*5)+
(juminno.charAt(4)*6)+
(juminno.charAt(5)*7)+
(juminno.charAt(6)*8)+
(juminno.charAt(7)*9)+
(juminno.charAt(8)*2)+
(juminno.charAt(9)*3)+
(juminno.charAt(10)*4)+
(juminno.charAt(11)*5);
sum_2 = sum_1 % 11;
if (sum_2 == 0) at = 10;
else
{
if (sum_2 == 1) at = 11;
else at = sum_2;
}
att = 11 - at;
// 1800 년대에 태어나신 분들은 남자, 여자의 구분이 9, 0 이라는
// 얘기를 들은적이 있는데 그렇다면 아래의 구문은 오류이다.
// 하지만... 100살넘은 분들이 주민등록번호를 과연 입력해볼까?
if (juminno.charAt(12) != att || juminno.substr(2,2) < '01' || juminno.substr(2,2) > '12' || juminno.substr(4,2) < '01' || juminno.substr(4,2) > '31' || juminno.charAt(6) > 4) boolCheck = false;
}
return boolCheck;
}
================================================================================
function juminCheck(j1, j2)
{
var chk=0;
var yy=j1.substring(0,2);
var mm=j1.substring(2,4);
var dd=j1.substring(4,6);
var sex=j2.substring(0,1);
if((j1.length!=6)||(yy<25||mm<1||mm>12||dd<1))
{
return false;
}
if((sex!=1&&sex!=2)||(j2.length!=7))
{
return false;
}
for(var i=0;i<=5;i++)
{
chk=chk+((i%8+2)*parseInt(j1.substring(i,i+1)));
}
for(var i=6;i<=11;i++)
{
chk=chk+((i%8+2)*parseInt(j2.substring(i-6,i-5)));
}
chk=11-(chk %11);
chk=chk%10;
if(chk!=j2.substring(6,7))
{
return false;
}
return true;
}
=================================================================
function jumin_chk(j1, j2)
{
var chk = 0,i;
for(i = 0;i <= 5;i++)
chk = chk + ((i % 8 + 2) * parseInt(j1.substring(i,i +1 )));
for(i = 6;i <= 11;i++)
chk = chk + ((i % 8 + 2) * parseInt(j2.substring(i - 6,i - 5)));
chk = 11 - (chk % 11);
chk = chk % 10;
if(chk == j2.substring(6,7))
return true;
else
return false;
}
==========================================================
function Q_is_valid_SSN_Kr(strng) {
re = /^[0-9]{6}-?[0-9]{7}$/;
if (!re.test(strng)) return false;
strng_new = strng.replace("-","");
var year = parseInt(strng_new.substr(0,2),10);
var month = parseInt(strng_new.substr(2,2),10);
var day = parseInt(strng_new.substr(4,2),10);
var gender = parseInt(strng_new.charAt(6) ,10);
if ( month<1 || month>12 || gender<1 || gender>4 ) return false;
var arrayOfLasts = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(month==2) {
year += (gender<3 ? 1900 : 2000);
if(Q_is_leap_year(year)) arrayOfLasts[1] = 29;
}
if(day<1 || day>arrayOfLasts[month-1]) return false;
var tmp = 0;
for(var n=0; n<12; n++) tmp += (n%8+2) * parseInt(strng_new.charAt(n),10);
tmp = (11-(tmp%11))%10;
if (tmp != strng_new.charAt(12)) return false;
return true;
}
Trackback Address :: http://jjangu.pe.kr/blog/trackback/6



