생년월일 입력받기!!! 문의드립니다^^:
본문
input 박스로 생년월을 받고 있는데요..
주민번호 앞자리 761212 이렇게 입력해야하는데 197612 이렇게 입력하시는분이 있네요
예제까지 딱 적어놨는데.. ㅡㅢ 보지를 않나봐요...
혹시 제어문이 있을가요???
답변 4
스크립트에서 주민번호 유효성 검사하는거 있을텐데..
혹시 몰라 올려둡니다.
function fn_chkJuminNum(jumin1, jumin2) { // ex_ 123456 - 1234567
// 정규식표현 (숫자만 입력가능)
if ( jumin1.match('[^0-9]') ) {
alert("주민등록번호는 숫자만 입력해주세요.");
return false;
}
if ( jumin1.length != 6 ) {
alert("생년월일은 YYMMDD 형식의 6자리로 입력해주세요.");
}
const keyArr = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; // 인증키 고정
let step1 = 0;
for ( int i = 0; i < jumin1.length; i++ ) {
step1 += parseInt( jumin1.substring( i, i+1 ), 10 ) * keyArr[ i ];
}
for ( int j = jumin1.length; j < ( jumin.length + jumin2.length ) - 1; j++ ) {
step1 += parseInt( jumin2.substring( j, j+1 ), 10 ) * keyArr[ j ];
}
const step2 = parseInt( jumin2.substring( 6, 7 ), 10 );
const step3 = (11 - ( step1 % 11 ) ) % 10;
if ( step 2 != step3 ) {
alert("유효하지 않은 주민등록번호입니다.");
$("#jumin1").val('');
$("#jumin1").focus();
return false;
}
}
를 사용하시면 되지 않을까요?
자바스크립트로 해당 중간날짜가 12월까지인지 유무 체크해서 처리해 주시면 좋지 않을까 싶습니다.
input type number라면 min 값을 걸어보세요
200000을 최소값으로 주면 19시작은 못넣을거 같네요.
var birth = '761304';
var birth1 = parseInt(birth.substring(0, 2));
var birth2 = parseInt(birth.substring(2, 4));
var birth3 = parseInt(birth.substring(4, 6));
if(birth1 == 19 || birth1 == 20 || birth2 > 12 || birth3 > 31) {
console.log('잘못된 생년월일');
}
간단하게 해봤는데, 검증은 안했습니다.
!-->