'javascript 만나이'에 해당되는 글 2건

  1. 2013.12.19 javascript 나이 계산하기
  2. 2013.01.23 javascript 생년월일 - 성인, 미성년자 만 나이 체크

 

<!DOCTYPE HTML>
<html>
 <head>
  <title>javascript 나이 계산</title>
  <style>
  input {height:12px;}
  p {display:inline;}
  .nb {ime-mode: disabled;}
  #y {width:30px;}
  #m, #d {width:15px;}
  #btn_age {height:20px;}
  </style>
  <script type="text/javascript">
  // 숫자 확인
  String.prototype.only_number = function(){
   return this.replace(/[^0-9]/gi, '');
  }

  // 나이 계산
  function fnAge()
  {
   var today = new Date();
   var y = document.getElementById('y').value;

   if(y == '' || y.length < 4)
   {
    alert('년도(예>1990)를 입력하세요.');
    document.getElementById('age').innerText = '?';
    document.getElementById('y').focus();
    return false;
   }

   if(Number(y) < (today.getFullYear() - 150))
   {
    alert('나이가 너무 많습니다.');
    document.getElementById('age').innerText = '?';
    document.getElementById('y').focus();
    return false;
   }

   if(Number(y) >= today.getFullYear())
   {
    alert('1살 이하입니다.');
    document.getElementById('age').innerText = '?';
    document.getElementById('y').focus();
    return false;
   }

   var m = document.getElementById('m').value;

   if(m == '' || m.length < 1 || (Number(m) < 1 || Number(m) > 12))
   {
    alert('월(예>1~12)을 입력하세요.');
    document.getElementById('age').innerText = '?';
    document.getElementById('m').focus();
    return false;
   }

   var d = document.getElementById('d').value;

   if(d == '' || d.length < 1 || (Number(d) < 1 || Number(d) > 31))
   {
    alert('일(예>1~31)을 입력하세요.');
    document.getElementById('d').focus();
    return false;
   }

   var birthday = new Date(m + '/' + d + '/' + y);
   var years = today.getFullYear() - birthday.getFullYear();

   // 현재 년도에서 생일을 재설정
   birthday.setFullYear(today.getFullYear());

   // 생일이 지났으면 -1
   if(today < birthday)
   {
    years--;
   }

   document.getElementById('age').innerHTML = years;
  }
  </script>
 </head>
<body>
 <p>생년월일 : </p>
 <input type="text" id="y" maxlength="4" class="nb" value="" onblur="this.value=this.value.only_number();" />년
 <input type="text" id="m" maxlength="2" class="nb" value="" onblur="this.value=this.value.only_number();" />월
 <input type="text" id="d" maxlength="2" class="nb" value="" onblur="this.value=this.value.only_number();" />일
 / 나이 : 만
 <p id="age">?</p>살
 <input type="button" id="btn_age" onclick="fnAge()" value="확인" />
</body>
</html>

Posted by 은둔고수

 

생년월일을 입력받아 자바스크립트를 이용해서 미성년자를 확인한다.

입력 양식 : 19940101(숫자만 입력)

function birthday_chk(f)
{
 f.value = f.value.only_number();

 if(f.value == '')
 {
  alert('생년월일을 작성해주세요.');
  return false;
 }

 else if(f.value.length != 8)
 {
  alert('생년월일을 정확히 작성해 주세요.\n(예. 1994년 1월 1일생 -> 19940101로 작성)');
  return false;
 }

 //=== 확인 : 생년월일 형식 // 시작

 var adt = 19; // 성년 나이
 var adt_max = 100; // 100세

 var d = new Date();
 var y = d.getFullYear();
 var m = (d.getMonth() + 1);
 var d = d.getDate();

 // 날짜 포맷 맞추기
 if(m < 10) m = '0' + m;
 if(d < 10) d = '0' + d;

 var birthday_y = parseInt(f.value.substr(0,4));
 var birthday_m = f.value.substr(4,2);
 var birthday_d = f.value.substr(6,2);
 var birthday_md = f.value.substr(4,4);

if(age < adt || (age == adt && parseInt(('1' + birthday_md)) > parseInt(('1' + m + d))))
 {
  alert('19세 미만은 이용하실 수 없습니다.');
  return false;
 }

 if(birthday_y < parseInt(y - adt_max) || (parseInt(birthday_m) < 1 || parseInt(birthday_m) > 12) || (parseInt(birthday_d) < 1 || parseInt(birthday_d) > 31))
 {
  alert('생년월일을 확인해 주세요.');
  return false;
 }
 //=== 확인 : 생년월일 형식 // 끝

 return true;
}

<form id="f" name="f">

<input type="text" id="birthday" name="birthday" maxlength="8" onblur="birthday_chk(document.f)" />

</form>

 

Posted by 은둔고수