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;
}
}
를 사용하시면 되지 않을까요?
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('잘못된 생년월일');
}
간단하게 해봤는데, 검증은 안했습니다.
input type number라면 min 값을 걸어보세요
200000을 최소값으로 주면 19시작은 못넣을거 같네요.
자바스크립트로 해당 중간날짜가 12월까지인지 유무 체크해서 처리해 주시면 좋지 않을까 싶습니다.
답변을 작성하려면 로그인이 필요합니다.