CheckValidDate
- 존재하는 날짜인지 확인
 
- checkValidDate(날짜)
 
- true, false 로 결과가 나온다.
 
방법1. class 지정
생년월일 ( HTML )
<li>
 <label>생년월일</label>
 <select class="birthSelect" name="birthYear" 
         									id="birthYear">
 </select>
 <select class="birthSelect" name="birthMonth"
                                            id="birthMonth">
 </select>
 <select class="birthSelect" name="birthDate" 
         									id="birthDate">
 </select>
</li>
만나이
const birthSelect_list 
	= document.querySelectorAll("select.birthSelect");
for(let birthSelect of birthSelect_list){
	birthSelect.addEventListener('change',function(){
      
      
     	if(isNan(this.value)){	
			if(birthSelect.id == "birthYear"){
              
            	alert("태어나신 년도를 선택하세요.");
            } else if(this.id == "birthMonth"){
            	alert("태어나신 월을 선택하세요.");
            } else{
            	alert("태어나신 일을 선택하세요.");
            }
          	document.querySelector
            			("나이값넣을장소").innerHTML = "";
        }
    
      	else{	
        	const birthday
 = document.querySelector("select#birthYear").value + "-"
+ document.querySelector("select#birthMonth").value + "-"
+ document.querySelector("select#birthDate").value;
          
          if(checkValidDate(birthday)){	
            
          	const age = go_age(birthday);	
            document.querySelector
            			("나이값넣을장소").innerHTML = age;
          }
          
          if(!checkValidDate(birthday)	
             && isNan(birthSelect.value)){	
      alert("달력상에 존재하지 않는 날짜를 선택하셨습니다.");
      document.querySelector("나이값넣을장소").innerHTML = "";
          }
        }	
    }	
}	
방법2. 함수 직접 선언
생년월일 ( HTML )
<li>
 <label>생년월일</label>
 <select name="birthYear" id="birthYear" 
         						onchange="check_date(this)">
 </select>
 <select name="birthMonth" id="birthMonth"
         						onchange="check_date(this)">
 </select>
 <select name="birthDate" id="birthDate" 
         						onchange="check_date(this)">
 </select>
</li>
만나이
function check_date(select){
	if(isNan(this.value)){	
			if(birthSelect.id == "birthYear"){
              
            	alert("태어나신 년도를 선택하세요.");
            } else if(this.id == "birthMonth"){
            	alert("태어나신 월을 선택하세요.");
            } else{
            	alert("태어나신 일을 선택하세요.");
            }
          	document.querySelector
            			("나이값넣을장소").innerHTML = "";
        }
  
      	else{	
        	const birthday
 = document.querySelector("select#birthYear").value + "-"
+ document.querySelector("select#birthMonth").value + "-"
+ document.querySelector("select#birthDate").value;
          
          if(checkValidDate(birthday)){	
            
          	const age = go_age(birthday);	
            document.querySelector
            			("나이값넣을장소").innerHTML = age;
          }
          
          if(!checkValidDate(birthday)	
             && isNan(birthSelect.value)){	
      alert("달력상에 존재하지 않는 날짜를 선택하셨습니다.");
      document.querySelector("나이값넣을장소").innerHTML = "";
          }
        }	
}	
만나이 구하기 함수
function go_age(birthday){
	const d_birthday = new Date(birthday);	
  	const birthYear = d_birthday.getFullYear();	
  	const now = new Date();	
  	const currentYear = now.getFullYear();	
  
  	if(d_birthday.getMonth() < now.getMonth()
       || d_birthday.getMonth() == now.getMonth()
       && d_birthday.getDate() < now.getDate()){
    
      	return currentYear - birthYear;	
    }
  	else{
    	return currentYear - birthYear - 1;
    }
}	
정리
- 15_form_regular_expression
-> form_regular_expression.html, form_regular_expression.css, form_regular_expression.js