// 기본적으로 validation에서 사용 되는 로직은 값을 받아서 처리하고 에러가 발생할시에는 alert()하고, return false를 리턴한다. // 정상 처리였을 경우는 return true;를 리턴한다. //TODO alert()에서 메세지를 뿌리기 위해서 해당 메세지를 얻어오는 풀을 키값으로 호출한다. 메세지는 key,value로 되어 있다. /** *
* 주민 번호 유효성 검사 * * ex : validateSSN(ssn1[, ssn2]) * @param ssn1 : 주민번호 13자리 또는 6자리 숫자 * @param ssn2 : ssn1이 6자리일 경우 7자리 숫자 * @return boolean **/ function validateSSN() { var ssn1 = arguments[0]; var ssn2 = arguments[1]; if (!ssn1) return false; else if (ssn1.length < 13 && !ssn2) return false; var ssn = ssn1 + (ssn2 ? ssn2 : ""); return ssn.isSSN(); } /** *
* 이메일주소 유효성 검사 * * ex : validateEmail(email1[, email2]) * @param email1 : 이메일주소 또는 이메일의 아이디 * @param email2 : email1이 아이디일 경우 이메일 도메인주소 * @return boolean **/ function validateEmail() { var email1 = arguments[0]; var email2 = arguments[1]; if (!email1) return false; else if (email1.indexOf('@') < 0 && !email2) return false; var email = email1 + (email2 ? '@' + email2 : ""); return email.isEmail(); } /** *
* 사업자 번호 유효성 검사 * * ex : validateRegNum(RegNum1[, RegNum2, RegNum3]) * @param RegNum1 : 사업자번호 10자리 또는 3자리 숫자 * @param RegNum2 : RegNum1이 3자리일 경우 2자리 숫자 * @param RegNum3 : RegNum1이 3자리일 경우 5자리 숫자 * @return boolean **/ function validateRegNum() { var regNum1 = arguments[0]; var regNum2 = arguments[1]; var regNum3 = arguments[3]; if (!regNum1) return false; if (regNum1.length < 10 && (!regNum2 || !regNum3)) return false; var regNum = regNum1 + (regNum2 ? regNum2 : "") + (regNum3 ? regNum3 : ""); return regNum.isRegNum(); } /** *
* 외국인 번호 유효성 검사 * * ex : validateForeignNum(frnNum1[, frnNum2]) * @param frnNum1 : 외국인번호 13자리 또는 외국인번호 앞 6자리 숫자 * @param frnNum2 : frnNum1이 6자리일 경우 7자리 숫자 * @return boolean **/ function validateForeignNum() { var frnNum1 = arguments[0]; var frnNum2 = arguments[1]; if (!frnNum1) return false; if (frnNum1.length < 13 && !frnNum2) return false; var frnNum = frnNum1 + (frnNum2 ? frnNum2 : ""); return frnNum.isFrgnNum(); } /** *
* 전화번호 유효성 검사 * * ex : validateTelNum(telNum1[, telNum2, telNum3]) * @param telNum1 : 천제 전화번호 또는 전화번호의 지역번호 * @param telNum2 : telNum1이 지역번호일 경우 전화번호의 국번 * @param telNum3 : telNum1이 지역번호일 경우 전화번호의 고유번호 * @return boolean **/ function validateTelNum() { var telNum1 = arguments[0]; var telNum2 = arguments[1]; var telNum3 = arguments[2]; if (!telNum1) return false; if (telNum1.length < 10 && (!telNum2 || !telNum3)) return false; var telNum = telNum1 + (telNum2 ? telNum2 : "") + (telNum3 ? telNum3 : ""); return telNum.isTelNum(); } /** *
* 휴대폰번호 유효성 검사 * * ex : validateHPNum(hpNum1[, hpNum2, hpNum3]) * @param hpNum1 : 전체 휴대폰번호 또는 휴대폰 앞번호 * @param hpNum2 : hpNum1이 3자리일 경우 휴대폰 중간번호 * @param hpNum3 : hpNum1이 3자리일 경우 휴대폰 뒷번호 * @return boolean **/ function validateHPNum() { var hpNum1 = arguments[0]; var hpNum2 = arguments[1]; var hpNum3 = arguments[2]; if (!hpNum1) return false; if (hpNum1.length < 11 && (!hpNum2 || !hpNum3)) return false; var hpNum = hpNum1 + (hpNum2 ? hpNum2 : "") + (hpNum3 ? hpNum3 : ""); return hpNum.isHPNum(); } /** *
* 8자리 유효일자 체크 로직
*
* ex : validateDate8("yyyyMMdd")
* @param date : 8자리 날짜 스트링
* @return boolean
*
*/
function validateDate8(date) {
if (cDate.length != 8) {
alert("날짜의 길이가 잘못 입력 되었습니다.");
return false;
}
var yyyy = date.substring(0, 4);
var mm = date.substring(4, 6) - 1;//12월일 경우 날짜 생성해서 보면 getMonth()로 보면 0으로 리턴되므로 1을 빼준다.
var dd = date.substring(6);
var checkDate = new Date(yyyy, mm, dd);
if (checkDate.getFullYear() != yyyy || checkDate.getMonth() != mm || checkDate.getDate() != dd) {
alert("날짜 형식이 유효하지 않습니다.");
return false;
}
return true;
}
/**
* * 최대값 체크 로직 * * ex : validateMaximum([최대값], [비교할 값]) * @param maxValue : 기준이 되는 최대값 * @param inValue : 비교할 입력값 * @return boolean **/ function validateMaximum(maxValue, inValue) { if (maxValue == "") return false; if (parseFloat(maxValue).toString() < parseFloat(inValue).toString()) return false; return true; } /** *
* 최소값 체크 로직 * * ex : validateMinimum([최소값], [비교할 값]) * @param minValue : 기준이 되는 최소값 * @param inValue : 비교할 입력값 * @return boolean **/ function validateMinimum(minValue, inValue) { if (minValue == "") return false; if (parseFloat(inValue).toString() < parseFloat(minValue).toString()) return false; return true; } /** *
* 최대 Byte 체크 로직 * * ex : validateMaxBytes([최대 Byte수] , [비교할 값]) * @param maxBytes : 기준이 되는 최대 Byte수 * @param intValue : 비교할 입력값 * @return boolean **/ function validateMaxBytes(maxBytes, intValue) { var length = calcByteLengthOfText(intValue); if (length > maxBytes) return false; return true; } /** *
* 조회일이 오늘 날짜보다 큰지 체크 * * ex : validateSearchDate([현재일자], [비교할 일자]) * @param nowDate : 기준이 되는 현재일자 (yyyyMMdd) * @param startDate : 비교할 입력일자 (yyyyMMdd) * @return : boolean **/ function validateSearchDate(nowDate, startDate) { if (startDate.length > 8) { alert("조회일이 잘못되었습니다."); return false; } if (parseInt(startDate, 10) > parseInt(nowDate, 10)) return false; return true; }