validation 관련 자바스크립트 파일 추가

main
이범준 1 year ago
parent b28a302604
commit 8a7f0796eb

@ -42,7 +42,8 @@
<script src="<c:url value="/resources/js/base/user.js?${ver}"/>"></script> <script src="<c:url value="/resources/js/base/user.js?${ver}"/>"></script>
<script src="<c:url value="/resources/js/base/authority.js?${ver}"/>"></script> <script src="<c:url value="/resources/js/base/authority.js?${ver}"/>"></script>
<!-- vaildation 관련 유틸 -->
<script src="<c:url value="/resources/js/fims/framework/cmm/cmmUtil.js"/>?${ver}"></script>
<!-- 날짜 관련 유틸 --> <!-- 날짜 관련 유틸 -->
<script src="<c:url value="/resources/js/fims/framework/cmm/cmmDateUtil.js"/>?${ver}"></script> <script src="<c:url value="/resources/js/fims/framework/cmm/cmmDateUtil.js"/>?${ver}"></script>

@ -267,7 +267,7 @@ var DateUtil = {
/** /**
* 입력일의 이전일 계산 * 입력일의 이전일 계산
*/ */
window.getPrevDay = function(datestr, days) { function getPrevDay(datestr, days) {
if ( days == "0") return datestr; if ( days == "0") return datestr;
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
if (datestr == "") return ""; if (datestr == "") return "";
@ -281,7 +281,7 @@ window.getPrevDay = function(datestr, days) {
/** /**
* 입력일의 다음일 계산 * 입력일의 다음일 계산
*/ */
window.getNextDay = function(datestr, days) { function getNextDay(datestr, days) {
if ( days == "0") return datestr; if ( days == "0") return datestr;
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
if (datestr == "") return ""; if (datestr == "") return "";
@ -295,7 +295,7 @@ window.getNextDay = function(datestr, days) {
/** /**
* 해당월의 마지막날 * 해당월의 마지막날
*/ */
window.getLastDay = function(datestr) { function getLastDay(datestr) {
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
if (datestr == "") return ""; if (datestr == "") return "";
var strNextMonth = window.addMonth(datestr, 1); var strNextMonth = window.addMonth(datestr, 1);
@ -310,8 +310,7 @@ window.getLastDay = function(datestr) {
/** /**
* , , 일을 입력 받아 Date String으로 변환 * , , 일을 입력 받아 Date String으로 변환
*/ */
window.getDatetime = function(nYear, nMonth, nDate) function getDatetime(nYear, nMonth, nDate){
{
var objDate = null; var objDate = null;
if (nYear.toString().trim().length >= 5) { if (nYear.toString().trim().length >= 5) {
@ -339,8 +338,7 @@ window.getDatetime = function(nYear, nMonth, nDate)
/** /**
* 계산 * 계산
*/ */
window.addYear = function(date, nOffSet) function addYear(date, nOffSet){
{
date = date.replace(/-/g, ""); date = date.replace(/-/g, "");
var nYear = parseInt(date.substr(0, 4), 10) + nOffSet; var nYear = parseInt(date.substr(0, 4), 10) + nOffSet;
var nMonth = parseInt(date.substr(4, 2), 10); var nMonth = parseInt(date.substr(4, 2), 10);
@ -351,8 +349,7 @@ window.addYear = function(date, nOffSet)
/** /**
* 계산 * 계산
*/ */
window.addMonth = function(date, nOffSet) function addMonth(date, nOffSet) {
{
date = date.replace(/-/g, ""); date = date.replace(/-/g, "");
var nYear = parseInt(date.substr(0, 4), 10); var nYear = parseInt(date.substr(0, 4), 10);
var nMonth = parseInt(date.substr(4, 2), 10) + nOffSet; var nMonth = parseInt(date.substr(4, 2), 10) + nOffSet;
@ -363,8 +360,7 @@ window.addMonth = function(date, nOffSet)
/** /**
* 계산 * 계산
*/ */
window.addDate = function(date, nOffSet) function addDate(date, nOffSet) {
{
date = date.replace(/-/g, ""); date = date.replace(/-/g, "");
var nYear = parseInt(date.substr(0, 4), 10); var nYear = parseInt(date.substr(0, 4), 10);
var nMonth = parseInt(date.substr(4, 2), 10); var nMonth = parseInt(date.substr(4, 2), 10);
@ -375,7 +371,7 @@ window.addDate = function(date, nOffSet)
/** /**
* 이전해 계싼 * 이전해 계싼
*/ */
window.getPrevYear = function(datestr, year) { function getPrevYear(datestr, year) {
if ( year == "0") return datestr; if ( year == "0") return datestr;
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
if (datestr == "") return ""; if (datestr == "") return "";
@ -389,7 +385,7 @@ window.getPrevYear = function(datestr, year) {
/** /**
* 다음해 계산 * 다음해 계산
*/ */
window.getNextYear = function(datestr, year) { function getNextYear(datestr, year) {
if ( year == "0") return datestr; if ( year == "0") return datestr;
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
if (datestr == "") return ""; if (datestr == "") return "";
@ -403,7 +399,7 @@ window.getNextYear = function(datestr, year) {
/** /**
* select 연도 * select 연도
*/ */
window.setYearCombo = function(id,isAll,isSelect,range){ function setYearCombo(id,isAll,isSelect,range){
var now = new Date(); var now = new Date();
var dayYear = now.getFullYear(); var dayYear = now.getFullYear();
var str = ""; var str = "";
@ -428,7 +424,7 @@ window.setYearCombo = function(id,isAll,isSelect,range){
/** /**
* select 연도(올해이후) * select 연도(올해이후)
*/ */
window.setYearComboNext = function(id,isAll,isSelect,range){ function setYearComboNext(id,isAll,isSelect,range){
var now = new Date(); var now = new Date();
var dayYear = now.getFullYear(); var dayYear = now.getFullYear();
var str = ""; var str = "";
@ -454,7 +450,7 @@ window.setYearComboNext = function(id,isAll,isSelect,range){
/** /**
* select 년월 * select 년월
*/ */
window.setYearMonCombo = function(id,isAll,isSelect){ function setYearMonCombo(id,isAll,isSelect){
var day = new Date(); var day = new Date();
var dayYear = day.getFullYear().toString(); var dayYear = day.getFullYear().toString();
var now = day.getMonth()+1; var now = day.getMonth()+1;
@ -478,7 +474,7 @@ window.setYearMonCombo = function(id,isAll,isSelect){
/** /**
* 문자열 날짜 숫자로 변경 * 문자열 날짜 숫자로 변경
*/ */
window.stringDateToNum = function(paramStr){ function stringDateToNum(paramStr){
var str = paramStr.replace(/-/g, ""); var str = paramStr.replace(/-/g, "");
var dateNum = ""; var dateNum = "";
@ -510,7 +506,7 @@ window.stringDateToNum = function(paramStr){
* @param2 day2 : 일자 8자리 - 'YYYYMMDD', 'YYYY-MM-DD', 'YYYY/MM/DD', etc * @param2 day2 : 일자 8자리 - 'YYYYMMDD', 'YYYY-MM-DD', 'YYYY/MM/DD', etc
* @return 일자간의 일수 * @return 일자간의 일수
*/ */
window.calcDayCount = function(day1, day2) { function calcDayCount(day1, day2) {
day1 = day1.replace(/-/g, ""); day1 = day1.replace(/-/g, "");
day2 = day2.replace(/-/g, ""); day2 = day2.replace(/-/g, "");
if (day1 == "" || day2 == "") return ""; if (day1 == "" || day2 == "") return "";
@ -524,7 +520,7 @@ window.calcDayCount = function(day1, day2) {
/** /**
* Get 요일 * Get 요일
*/ */
window.getWeek = function(datestr, isConvert){ function getWeek(datestr, isConvert){
datestr = datestr.replace(/-/g, ""); datestr = datestr.replace(/-/g, "");
var dateObj = window.getDateObject(datestr); var dateObj = window.getDateObject(datestr);
var week = dateObj.getDay() + 1; var week = dateObj.getDay() + 1;
@ -544,7 +540,7 @@ window.getWeek = function(datestr, isConvert){
//----------------------------------------------------------- //-----------------------------------------------------------
// 현재년월 구하기 // 현재년월 구하기
//----------------------------------------------------------- //-----------------------------------------------------------
window.getYearMonth = function() { function getYearMonth() {
var today = getToday(); var today = getToday();
var yearMonth = today.substr(0, 7); var yearMonth = today.substr(0, 7);
@ -558,8 +554,7 @@ window.getYearMonth = function() {
* @param astrNotNull: nn:not null, "": null 허용 * @param astrNotNull: nn:not null, "": null 허용
* @return true/false * @return true/false
**/ **/
function blnOkDate(astrValue, astrNotNull) function blnOkDate(astrValue, astrNotNull) {
{
var arrDate; var arrDate;
if (astrValue=='') if (astrValue=='')
@ -599,8 +594,7 @@ function blnOkDate(astrValue, astrNotNull)
* *
* @param field INPUT 객체 * @param field INPUT 객체
**/ **/
function openCalendar(dateField) function openCalendar(dateField) {
{
var obj = eval("document." + dateField); var obj = eval("document." + dateField);
if (obj.value == "") if (obj.value == "")

@ -0,0 +1,158 @@
/**************************************************************************
* validation
**************************************************************************/
/**
* 문자열이 숫자형인지의 여부를 반환한다.
* @param exceptChar - 추가 허용할 문자
* @return 숫자형여부
*/
function isNumber(str, exceptChar) {
return (/^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/).test(str.replaceAll(exceptChar,"")) ? true : false;
};
// 날짜체크
function isDate(str) {
if(str.length != 8){
return false;
}
if (!isNumber(str, "")) {
return false;
}
// 숫자, length 확인
var year = str.substring(0,4);
var month = str.substring(4,6);
var day = str.substring(6,8);
// 유효날짜 확인
if (year>="0001" && year<="9999" && month>="01" && month<="12") {
febDays = "29";
if ((parseInt(year,10) % 4) == 0) {
if ((parseInt(year,10) % 100) == 0 && (parseInt(year,10) % 400) != 0){
febDays = "28";
}
}else{
febDays = "28";
}
if (month=="01" && day>="01" && day<="31") return true;
if (month=="02" && day>="01" && day<=febDays) return true;
if (month=="03" && day>="01" && day<="31") return true;
if (month=="04" && day>="01" && day<="30") return true;
if (month=="05" && day>="01" && day<="31") return true;
if (month=="06" && day>="01" && day<="30") return true;
if (month=="07" && day>="01" && day<="31") return true;
if (month=="08" && day>="01" && day<="31") return true;
if (month=="09" && day>="01" && day<="30") return true;
if (month=="10" && day>="01" && day<="31") return true;
if (month=="11" && day>="01" && day<="30") return true;
if (month=="12" && day>="01" && day<="31") return true;
return false;
}
return true;
}
/**
* 문자열이 지정한 최소길이 이상인지의 여부를 반환한다.
* @param minLen - 최소길이
* @return 최소길이 이상인지의 여부
*/
function isMin(str, minLen) {
return str.length >= minLen;
};
/**
* 문자열이 지정한 최대길이 이하인지의 여부를 반환한다.
* @param maxLen - 최대길이
* @return 최대길이 이하인지의 여부
*/
function isMax(str, maxLen) {
return str.length <= maxLen;
};
/**
* 문자열이 지정한 최소바이트수 이상인지의 여부를 반환한다.
* @param minByte - 최소바이트수
* @return 최소바이트수 이상인지의 여부
*/
function isMinByte(str, minByte) {
return getByte(str) >= minByte;
};
/**
* 문자열이 지정한 최대바이트수 이하인지의 여부를 반환한다.
* @param maxByte - 최대바이트수
* @return 최대바이트수 이하인지의 여부
*/
function isMaxByte(str, maxByte) {
return getByte(str) <= maxByte;
};
/**
* 문자열이 영어만으로 구성되어 있는지의 여부를 반환한다.
* @param exceptChar - 추가 허용할 문자
* @return 영어만으로 구성되어 있는지의 여부
*/
function isEng(str, exceptChar) {
return (/^[a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false;
};
/**
* 문자열이 숫자와 영어만으로 구성되어 있는지의 여부를 반환한다.
* @param exceptChar - 추가 허용할 문자
* @return 숫자와 영어만으로 구성되어 있는지의 여부
*/
function isEngNum(str, exceptChar) {
return (/^[0-9a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false;
};
/**
* 이메일 주소의 유효성 여부를 반환한다.
* @return 유효성 여부
*/
function isEmail(str) {
return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(str);
};
/**************************************************************************
* String util
**************************************************************************/
/**
* 문자열의 byte 길이를 반환한다.
* @return 문자열의 byte 길이
*/
function getByte(str) {
if ( str == null || str.length == 0 ) {
return 0;
}
var size = 0;
for ( var i=0, len=str.length ; i < len ;i++ ) {
var charCode = str.charCodeAt(i),
charSize = 0;
if ( charCode <= 0x00007F ) { //127
charSize = 1;
} else if ( charCode <= 0x0007FF) { //2047
charSize = 2;
} else if ( charCode <= 0x00FFFF) { //65535
charSize = 3;
} else {
charSize = 4;
}
size += charSize;
}
return size;
};
Loading…
Cancel
Save