/** * ************************************************ * 업무그룹명 : 공통 자바스크립트 * 서브업무명 : 공통함수 처리 * 설명 : * 작성자 : 김석철 (indark9@gmail.com) * 작성일 : 2007. 7. 31 오후 5:25:55 * ************************************************* */ /** * 입력값의 크기를 검사한다. * * @param str 문자열 * @param min 최소 자리수 * @param max 최대 자리수 * @return */ function ValidSize(str, min, max) { return strlen(str) >= min && strlen(str) <= max; } /** * 패스워드 작성 규칙 * * @param str 문자열 * @param min 최소 자리수 * @param max 최대 자리수 * @return */ function PassRule(str, min, max) { var alphaChk = false; var numChk = false; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (!(code >= 65 && code <= 122)) { //return false; }else{ alphaChk = true; break; } } for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if ((code < 48) || (code > 57)) { //return false; }else{ numChk = true; break; } } if(alphaChk==true && numChk==true){ return strlen(str) >= min && strlen(str) <= max; }else{ return false; } // return strlen(str) >= min && strlen(str) <= max; } /** * 관리자 패스워드 작성 규칙 * * @param str 문자열 * @param min 최소 자리수 * @param max 최대 자리수 * @return */ function AdminPassRule(str, min, max) { var alphaChk = false; var numChk = false; var specialChk = false; for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); //문자 if ((code >= 65 && code <= 90) || (code >= 97 && code <= 122)) { alphaChk = true; break; }else{ //return false; } } for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); //특수문자 if ((code >= 33 && code <= 47) || (code >= 58 && code <= 64) || (code >= 91 && code <= 96) || (code >= 123 && code <= 125)) { specialChk = true; break; }else{ //return false; } } for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); //숫자 if ((code < 48) || (code > 57)) { //return false; }else{ numChk = true; break; } } if(alphaChk==true && numChk==true && specialChk==true){ return strlen(str) >= min && strlen(str) <= max; }else{ return false; } // return strlen(str) >= min && strlen(str) <= max; } /** * 객체의 값이 숫자인지 검사한다. * * @param str 문자열 * @return */ function Number(str) { for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if ((code < 48) || (code > 57)) { return false; } } return true; } /** * 객체의 값이 한글인지 검사한다. * * @param str 문자열 * @return */ function Korean(str) { for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (!(code > 255)) { return false; } } return true; } /** * 객체의 값이 영문인지 검사한다. * * @param str 문자열 * @return */ function Alphabet(str) { for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (!(code >= 65 || code <= 122)) { return false; } } return true; } /** * 객체의 값이 영문 또는 숫자인지 검사한다. * * @param str 문자열 * @return */ function AlphaNumeric(str) { for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i); if (!((code >= 65) && (code <= 122)) && !((code >= 48) && (code <= 57))) { return false; } } return true; } /** * 두 객체의 값이 동일한지 검사한다. * * @param str1 문자열1 * @param str2 문자열2 * @return */ function Same(str1, str2) { return str1 == str2; } /** * 객체의 값이 아이디에 적합한지 검사한다. * - 아이디형식 : 영문, 숫자, _ 를 사용하여 5자이상 10자이하 * * @param str 문자열 * @return */ function Id(str) { if (!ValidSize(str, 5, 10)) { return false; } return AlphaNumeric(str); } /** * 객체의 값이 E-Mail에 적합한지 검사한다. * * @param str 문자열 * @return */ function Mail(str) { var i = str.indexOf("@"); if (i < 0) { return false; } i = str.indexOf("."); return i >= 0; } /** * 객체의 값이 주민번호에 적합한지 검사한다. * * @param str1 문자열1 * @param str1 문자열2 * @return */ function Resno(str1, str2) { if (!(ValidSize(str1, 6, 6) && ValidSize(str2, 7, 7))) { return false; } var hap = 0; for (var i = 0; i < 6; i++) { hap = hap + (str1.charAt(i) * (i + 2)); } var n1 = str2.charAt(0); var n2 = str2.charAt(1); var n3 = str2.charAt(2); var n4 = str2.charAt(3); var n5 = str2.charAt(4); var n6 = str2.charAt(5); var n7 = str2.charAt(6); hap += n1 * 8 + n2 * 9 + n3 * 2 + n4 * 3 + n5 * 4 + n6 * 5; hap %= 11; hap = 11 - hap; hap %= 10; return hap == n7; } /** * 객체의 값이 전화번호에 적합한지 검사한다. * * @param str1 문자열1 * @param str2 문자열2 * @param str3 문자열3 * @return */ function Phone(str1, str2, str3) { if (!Number(str1) || !ValidSize(str1, 2, 3)) { return false; } var ddd = ["02", "051", "053", "032", "062", "042", "052", "031", "033", "041", "043", "054", "055", "061", "063", "064", "070"]; var flag = false; for (var i = 0; i < ddd.length; i++) { if (ddd[i] == str1) { flag = true; } } return flag && Number(str2) && ValidSize(str2, 3, 4) && Number(str3) && ValidSize(str3, 4, 4); } /** * 객체의 값이 전화번호에 적합한지 검사한다. * * @param str1 문자열1 * @param str2 문자열2 * @param str3 문자열3 * @return */ function Cellular(str1, str2, str3) { if (!(Number(str1) && ValidSize(str1, 3, 3))) { return false; } var ddd = ["010", "011","016","017","018","019"]; var flag = false; for (var i = 0; i < ddd.length; i++) { if (ddd[i] == str1) { flag = true; } } return flag && Number(str2) && ValidSize(str2, 3, 4) && Number(str3) && ValidSize(str3, 4, 4); } /** * 객체의 값이 연도에 적합한지 검사한다. * * @param str 문자열 * @return */ function ValidYear(str) { var year = parseInt(trim(str), 10); return year >= 0 && ValidSize(str, 4, 4) && Number(str); } /** * 객체의 값이 월에 적합한지 검사한다. * * @param str 문자열 * @return */ function ValidMonth(str) { var month = parseInt(trim(str), 10); return parseInt(month) >= 1 && parseInt(month) <= 12 && Number(str); } /** * 객체의 값이 일에 적합한지 검사한다. (삭제대상) * * @param str1 문자열1 * @param str2 문자열2 * @param str3 문자열3 * @return */ function ValidDay(str1, str2, str3) { return ValidDate(str1, str2, str3); } /** * 객체의 값이 시에 적합한지 검사한다. * * @param str 문자열 * @return */ function ValidHour(str) { var hour = parseInt(trim(str), 10); return Number(str) && parseInt(hour) <= 23 && parseInt(hour) >= 0; } /** * 객체의 값이 분에 적합한지 검사한다. * * @param str 문자열 * @return */ function ValidMinute(str) { var minute = parseInt(trim(str), 10); return Number(str) && parseInt(minute) <= 59 && parseInt(minute) >= 0; } /** * 객체의 값이 초에 적합한지 검사한다. * * @param str 문자열 * @return */ function ValidSecond(str) { var second = parseInt(trim(str), 10); return Number(str) && parseInt(second) <= 59 && parseInt(second) >= 0; } /** * 객체의 값이 일에 적합한지 검사한다. * * @param str1 문자열1 * @param str2 문자열2 * @param str3 문자열3 * @return */ function ValidDate(str1, str2, str3) { var year = parseInt(trim(str1), 10); var month = parseInt(trim(str2), 10) - 1; var day = parseInt(trim(str3), 10); if (!(ValidYear(str1) && ValidMonth(str2))) { return false; } var endDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { endDay[1] = 29; } return Number(str3) && day >= 1 && day <= endDay[month]; } /** * 객체의 값이 연월에 적합한지 검사한다. * * @param str1 문자열1 * @param str2 문자열2 * @return */ function ValidYearMonth(str1, str2) { return ValidYear(str1) && ValidMonth(str2); }