출처 : http://cafe.naver.com/morehana.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=46
===============================================================================
주 시 스 템 : 공통 개발
서브 시스템 : 없음
프로그램 ID : JCommon.js
프로그램 명 : 공통 기능 Javascript
프로그램개요 : 공통적으로 사용되는 Javascript를 정의한다
작 성 자 : 유명현, 최선재
작 성 일 : 2002.04.04
마지막 수정일 : 2003.11.30
===============================================================================
-------------------------------숫자--------------------------------
/*=========================================*
* 입력값이 숫자인지를 확인한다
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
/*=========================================*
function isNumber(sVal) {
if(sVal.length < 1) {
return false;
}
for(i=0; i<sVal.length; i++) {
iBit = parseInt(sVal.substring(i,i+1)); //문자(Char)를 숫자로 변경
if(('0' < iBit) || ('9' > iBit)) {
//alert(i+':'+iBit+':'+'Mun');
} else {
return false;
}
}
return true;
}
/*=========================================*
* 입력값이 숫자인지를 확인한다. (' '까지 괜찮음)
* param : sVal 입력스트링
* return : Boolean True이면 숫자값
/*=========================================*
function isNumberSpace(sVal) {
if(sVal.length < 1) {
return false;
}
for(var i=0;i<sVal.length;i++) {
sBitData = sVal.substring(i,i+1); //문자열의 문자(char)를 넣는다
if(sBitData == ' ') {
} else {
iBit = parseInt(sVal.substring(i,i+1)); //문자(char)를 숫자로
if(('0' < iBit) || ('9' > iBit) || (' ' == sBitData)) {
} else {
return false;
}
}
}
return true;
}
/*=========================================*
* sVal 값이 숫자인지를 확인한다.('.'까지 괜찮음)
*
* param : sVal 입력스트링
*
* return : Boolean True이면 숫자값
/*=========================================*
function isNumberDot(sVal) {
if (sVal.length < 1) {
return false;
}
var result=0;
var position=0;
var bMinus;
//마이너스 부호의 갯수를 카운트하여 올바른지 확인
for(position=0; position<sVal.length; position++) {
if( getAt(sVal, position) == '-' ) {
result += 1;
}
}
if(result > 1)
return false;
result = 0;
//소수점의 갯수를 카운트하여 올바른지 확인
for(position=0; position<sVal.length; position++) {
if( getAt(sVal, position) == '.' ) {
result += 1;
}
}
if(result > 1)
return false;
//마이너스 부호를 가지고 있는지 확인. 있다면 부호는 빼낸다.
if(sVal.substr(0,1) == '-') {
bMinus = true;
sVal = sVal.substring(1, sVal.length);
}
//맨앞에 소수점이 있거나 맨 뒤에 있을 경우 0 을 추가해 줌.
if(sVal.substring(0,1) == '.')
sVal = '0' + sVal;
else if(sVal.substring(sVal.length-1,sVal.length) == '.')
sVal = sVal + '0';
//검사.
for(var position=0; position<sVal.length; position++) {
if( (getAt(sVal, position) < '0' || getAt(sVal, position) >'9') && getAt(sVal,position) != '.' )
return false;
}
return true;
}
function getAt(sVal, position) {
return sVal.substring(position, position+1)
}
-----------------------------숫자채우기---------------------------
/*=========================================*
* 앞자리의 연속된 Zero 값을 자른다.
* param : sVal 입력스트링
* return : String Zero값을 자른 값
/*=========================================*
function trimZero(sVal) {
var i;
i = 0;
while (sVal.substring(i,i+1) == '0') {
i++;
}
return sVal.substring(i);
}
/*=========================================*
* 입력값의 앞에 정해진 자리수만큼 0을 채운다.
* param : sVal 입력스트링, iSize
* return : String
/*=========================================*
function fillZero(sVal, iSize) {
while(sVal.length < iSize) {
sVal = "0" + sVal;
}
return sVal;
}
/*=========================================*
* 길이가1인 경우 앞에 "0"을 붙인다.
*
* param : sVal 입력스트링
*
* return : String "0"값을 포함하는 값
/*=========================================*
function addZero(sVal) {
var iLen = sVal.length; //인수값의 길이를 구한다.
if(iLen == 1) {
sVal = "0"+sVal;
} else if(iLen == 0) {
return;
}
return sVal;
}
-------------------------------날짜--------------------------------
/*=========================================*
* 날짜 여부를 확인한다.(월일 or 년월 or 년월일)
*
* param : sYmd 입력스트링(MMDD or YYYYMM or YYYYMMDD)
*
* return : Boolean true이면 날짜 범위임
*
* 수정 : 월이나 일에 00 입력시 스크립트 에러. trimZero 부분을 수정(2003/11/19)
/*=========================================*
function isDate(sYmd) {
var bResult; // 결과값을 담는 변수(Boolean)
switch (sYmd.length) {
case 4://월일
bResult = isDateMD(sYmd);
break;
case 6://년월
bResult = isDateYM(sYmd);
break;
case 8://년월일
bResult = isDateYMD(sYmd);
break;
default:
bResult = false; // 날짜 값이 아님
break;
}
return bResult;
}
/*=========================================*
* 날짜 여부를 확인한다.(년월일)
*
* param : sYmd 입력스트링(YYYYMMDD)
*
* return : Boolean true이면 날짜 범위임
/*=========================================*
function isDateYMD(sYmd) {
// 길이 확인 //@@ 12.5 순서 변경
if(sYmd.length != 8) {
alert('일자를 모두 입력하십시오');
return false;
}
// 숫자 확인
if(!isNumber(sYmd)) {
alert('날짜는 숫자만 입력하십시오');
return false;
}
var iYear = parseInt(sYmd.substring(0,4),10); // 년도 입력(YYYY)
var iMonth = parseInt(sYmd.substring(4,6),10); //월입력(MM)
var iDay = parseInt(sYmd.substring(6,8),10); //일자입력(DD)
if((iMonth < 1) ||(iMonth >12)) {
alert(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
//각 달의 총 날수를 구한다
var iLastDay = lastDay(sYmd.substring(0,6)); // 해당월의 마지말날 계산
if((iDay < 1) || (iDay > iLastDay)) {
alert(iMonth+'월의 일자는 1 - '+ iLastDay +'까지입니다.');
return false;
}
return true;
}
/*=========================================*
* 날짜 여부를 확인한다.(월일)
*
* param : sMD 입력스트링(MMDD)
*
* return : Boolean true이면 날짜 범위임
/*=========================================*
function isDateMD(sMD) {
// 숫자 확인
if(!isNumber(sMD)) {
alert('숫자만 입력하십시오');
return false;
}
// 길이 확인
if(sMD.length != 4) {
alert('일자를 모두 입력하십시오');
return false;
}
var iMonth = parseInt(sMD.substring(0,2),10); //해당월을 숫자값으로
var iDay = parseInt(sMD.substring(2,4),10); //해당일을 숫자값으로
if((iMonth < 1) ||(iMonth >12)) {
alert(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
//각 달의 총 날수를 구한다
if (iMonth < 8 ) {
var iLastDay = 30 + (iMonth%2);
} else {
var iLastDay = 31 - (iMonth%2);
}
if (iMonth == 2) {
iLastDay = 29;
}
if((iDay < 1) || (iDay > iLastDay)) {
alert(iMonth+'월의 일자는 1 - '+iLastDay+'까지입니다.');
return false;
}
return true;
}
/*=========================================*
* 날짜 여부를 확인한다.(년월)
*
* param : sYM 입력스트링(YYYYMM)
*
* return : Boolean true이면 날짜 범위임
/*=========================================*
function isDateYM(sYM) {
// 숫자 확인
if(!isNumber(sYM)) {
alert('날짜는 숫자만 입력하십시오');
return false;
}
// 길이 확인
if(sYM.length != 6) {
alert('일자를 모두 입력하십시오');
return false;
}
var iYear = parseInt(sYM.substring(0,4),10); //년도값을 숫자로
var iMonth = parseInt(sYM.substring(4,6),10); //월을 숫자로
if((iMonth < 1) ||(iMonth >12)) {
alert(iMonth+'월의 입력이 잘못 되었습니다.');
return false;
}
return true;
}
/*=========================================*
* 년월을 입력받아 마지막 일를 반환한다(년월)
*
* param : sYM 입력스트링(YYYYMM)
*
* return : String 해당월의 마지막날
/*=========================================*
function lastDay(sYM) {
if(sYM.length != 6) {
alert("정확한 년월을 입력하십시오.");
return;
}
if(!isDateYM(sYM)) {
return;
}
daysArray = new makeArray(12); // 배열을 생성한다.
for (i=1; i<8; i++) {
daysArray[i] = 30 + (i%2);
}
for (i=8; i<13; i++) {
daysArray[i] = 31 - (i%2);
}
var sYear = sYM.substring(0, 4) * 1;
var sMonth = sYM.substring(4, 6) * 1;
if (((sYear % 4 == 0) && (sYear % 100 != 0)) || (sYear % 400 == 0)) {
daysArray[2] = 29;
} else {
daysArray[2] = 28;
}
return daysArray[sMonth].toString();
}
/*=========================================*
* 입력받은 날짜로부터 몇일 후의 날짜를 반환하기
*
* param : ObjDate객체, 일수, 결과Data객체
*
* return :
/*=========================================*
function calcDate(objDate,iDay,objResultDate) {
daysArray = new makeArray(12); //월별 공간을 생성
for(i=1; i<13; i++) {
daysArray[i] = 30 + (i%2);
}
var sYear = objDate.value.substring(0, 4) * 1;
var sMonth = objDate.value.substring(4, 6) * 1;
var sDay = objDate.value.substring(6, 8) * 1;
daysArray[2] = lastDay(sYear + "02");
var iMoveRemain = iDay * 1 + sDay;
var iCurMonth = sMonth;
var iCurYear = sYear;
while (iMoveRemain > daysArray[iCurMonth]) {
iMoveRemain = iMoveRemain - daysArray[iCurMonth];
iCurMonth = iCurMonth + 1;
if (iCurMonth > 12) {
iCurMonth = 1;
iCurYear = iCurYear + 1;
daysArray[2] = lastDay(iCurYear + "02");
}
} //end of while
iCurMonth = addZero(iCurMonth.toString());
iMoveRemain = addZero(iMoveRemain.toString());
objResultDate.value = iCurYear + iCurMonth + iMoveRemain;
}
-------------------------------문자--------------------------------
/*=========================================*
* 대소문자를 포함한 영문자인지 확인한다.
*
* param : sVal 입력문자열
*
* return : Boolean true이면 알파벳
/*=========================================*
function isAlpha(sVal)
{
// Alphabet 값
var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var iLen=sVal.length; //입력값의 길이
for(i=0;i<iLen;i++)
{
if(sAlphabet.indexOf(sVal.substring(i,i+1))<0)
{
alert("허용된 문자가 아닙니다.\n영문으로 입력해 주십시오.");
return false;
}
}
return true;
}
/*=========================================*
* 영문자와 숫자 구성된 문자열인지 확인
*
* param : sVal 입력문자열
*
* return : Boolean true이면 영문자,숫자로 구성된 문자열
/*=========================================*
function isAlphaNumeric(sVal)
{
var sAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var iLen = sVal.length;
for ( i = 0; i < iLen; i++ )
{
if ( sAlphabet.indexOf(sVal.substring(i, i+1)) < 0 )
{
return false;
}
}
return true;
}
-----------------------------문자길이------------------------------
/*=========================================*
* 문자열의 길이를 return (한글:2자)
*
* param : sVal 입력문자열
*
* return : int 입력문자열의 길이
/*=========================================*
function strLength(sVal)
{
var sBit = ''; // 문자열의 문자(Char)
var iLen = 0; //문자열 길이
for ( i = 0 ; i < sVal.length ; i++ )
{
sBit = sVal.charAt(i);
if ( escape( sBit ).length > 4 )
{
iLen = iLen + 2;
}
else
{
iLen = iLen + 1;
}
}
return iLen;
}
/*=========================================*
* 문자열 길이 체크
* param : str 필드객체, field 필드명
* return : boolean
/*=========================================*
function chkStrLength(str,field)
{
iSize = str.getAttribute("Maxlength")
if (field == null)
field = '';
if ( strLength(str.value) > iSize)
{
// if (flag=1)
alert("입력가능한 "+field+" 최대길이는 영문/숫자일 때 "+iSize+"자, 한글일 때 "+Math.floor(iSize/2)+"자입니다.");
// else
// alert(field+" 최대길이는 "+iSize+"자 입니다.");
str.select();
str.focus();
return false;
}
return true;
}
-------------------------------한글--------------------------------
/*=========================================*
* 한글이지 여부 체크
*
* param : sVal 입력문자열
*
* return : Boolean true이면 한글
/*=========================================*
function isHangul(sVal)
{
var sBit = '';
for(i=0;i<sVal.length;i++)
{
sBit = sVal.charAt(i);
if(escape( sBit ).length <= 4)
{
alert("한글만 입력하십시오.");
return false;
}
}
return true;
}
-------------------------------주민--------------------------------
/*=========================================*
* 주민등록 여부를 확인한다.(내국인)
*
* param : sID 입력문자열(주민번호 13자리)
*
* return : Boolean true이면 적합한 주민번호
/*=========================================*
function isSocialNO(ssn)
{
var digit=0
for (var i=0 ; i<ssn.length ; i++){
var str_dig=ssn.substring(i,i+1);
if (str_dig<'0' || str_dig>'9'){
digit=digit+1
}
}
if(digit>0)
{
return false;
}
var year = parseInt(ssn.substring(0,2));
var month = parseInt(ssn.substring(3,4));
var day = parseInt(ssn.substring(5,6));
var gender = parseInt(ssn.substring(7,7));
var local = parseInt(ssn.substring(8,11));
var key = parseInt(ssn.substring(12));
if( (month<0) || (month>12) )
{
return false;
}
if( (month==1) || (month==3) || (month==5) || (month==7) || (month==8) || (month==10) || (month==12) )
{
if( (day<0) || (day>31) )
{
return false;
}
}
if( (month==4) || (month==6) || (month==9) || (month==10) )
{
if( (day<0) || (day>30) )
{
return false;
}
}
if(month==2)
{
if( (year==0) && ( (gender==1) || (gender==2) ) )
{
if( (day<0) || (day>28) )
{
return false;
}
}
else if( (year==0) && ( (gender==3) || (gender==4) ) )
{
if( (day<0) || (day>29) )
{
return false;
}
}
else if(year%4==0)
{
if( (day<0) || (day>29) )
{
return false;
}
}
else
{
if( (day<0) || (day>28) )
{
return false;
}
}
}
if( (gender<0) || (gender>4) )
{
return false;
}
cBit = 0;
sCode="234567892345";
for(i=0;i<12;i++)
{
cBit = cBit+parseInt(ssn.substring(i,i+1))*parseInt(sCode.substring(i,i+1));
}
cBit=11-(cBit%11);
cBit=cBit%10;
if(key!=cBit)
{
return false;
}
else
{
return true;
}
}
/*=========================================*
* 주민등록 여부를 확인한다.(외국인)
*
* param : sID 입력문자열(주민번호 13자리)
*
* return : Boolean true이면 적합한 주민번호
/*=========================================*
function isFgnSocialNO(ssn) {
if ((ssn.charAt(6) == "5") || (ssn.charAt(6) == "6"))
{
birthYear = "19";
}
else if ((ssn.charAt(6) == "7") || (ssn.charAt(6) == "8"))
{
birthYear = "20";
}
else if ((ssn.charAt(6) == "9") || (ssn.charAt(6) == "0"))
{
birthYear = "18";
}
else
{
return false;
}
birthYear += ssn.substr(0, 2);
birthMonth = ssn.substr(2, 2) - 1;
birthDate = ssn.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);
if ( birth.getYear() % 100 != ssn.substr(0, 2) ||
birth.getMonth() != birthMonth ||
birth.getDate() != birthDate) {
return false;
}
var sum = 0;
var odd = 0;
buf = new Array(13);
for (i = 0; i < 13; i++) buf[i] = parseInt(ssn.charAt(i));
odd = buf[7]*10 + buf[8];
if (odd%2 != 0) {
return false;
}
if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
return false;
}
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
sum=11-(sum%11);
if (sum>=10) sum-=10;
sum += 2;
if (sum>=10) sum-=10;
if ( sum != buf[12]) {
return false;
}
else {
return true;
}
}
/*=========================================*
* 숫자 0으로 초기화 된 1차원 배열을 생성한다.
*
* param : iSize 배열 크기
*
* return : this 배열
/*=========================================*
function makeArray(iSize)
{
this.length = iSize;
for (i = 1; i <= iSize; i++)
{
this[i] = 0;
}
return this;
}
/*=========================================*
* 숫자 분리자(,)(.)가 있는 숫자이거나 일반숫자형태인지 검사한다.
*
* param : sVal
*
* return : Boolean
/*=========================================*
function isMoneyNumber(sVal)
{
var iAbit;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == ',' || sVal.substring(i, i+1) == '.' )
{
}
else
{
return false;
}
}
}
return true;
}
/*=========================================*
* 숫자 분리자(,)만 있는 숫자이거나 일반숫자형태인지 검사한다.
*
* param : sVal
*
* return : Boolean
/*=========================================*
function isMoneyNumber2(sVal)
{
var iAbit;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == ',')
{
}
else
{
return false;
}
}
}
return true;
}
/*=========================================*
* 숫자 분리자(.)만 있는 숫자이거나 일반숫자형태인지 검사한다.
* param : sVal
* return : Boolean
/*=========================================*
function isMoneyNumber3(sVal)
{
var iAbit;
var deci_cnt = 0;
if (sVal.length < 1) return true;
for (i=0; i<sVal.length; i++)
{
iAbit = parseInt(sVal.substring(i,i+1));
if (!(('0' < iAbit) || ('9' > iAbit)))
{
if (sVal.substring(i, i+1) == '.' )
{
deci_cnt = deci_cnt + 1;//소수점 이하가 있는지 파악 (1이면 소수점 이하 존재)
}
else
{
return false;
}
}
}
if (deci_cnt > 1)
{
return false;
}
return true;
}
/*=========================================*
* 숫자 분리자(.)만 있는 숫자인지 검사한다.
*
* param : sVal
*
* return : Boolean
/*=========================================*
function isMoneyNumber4(sVal){
var deci_cnt = 0;
for (i=0; i<sVal.length; i++)
{
if (sVal.substring(i, i+1) == '.' ){
deci_cnt = deci_cnt + 1;//소수점있는지여부
}
}
if (deci_cnt > 0)
{
return true;
}
return false;
}
/*=========================================*
* 소수점이 있는 숫자이면서 정해진 자릿수에 맞는 형식인지 확인한다.
* param : sVal 입력객체, iSize1 정수자릿수, iSize2 소수자릿수
* return : boolean
/*=========================================*
function isMoneyNumber5(sVal, iSize1, iSize2)
{
if(isMoneyNumber(sVal)) // ,나 .가 들어가는 숫자인지 확인
{
var e = sVal.value;
e = e.split(".");
e[0] = numOffMask(e[0]);
if (!e[1]) {
e[1] = 0;
}
var aVal = e[0] + "." + e[1];
if (isNumberDot(aVal)) {
// 입력된 값이 설정된 정수자릿수 또는 소숫점 이하보다 크면 false
if (e[0].length > iSize1 || e[1].length > iSize2)
return false;
else
return true;
}
else {
return false;
}
}
else {
return false;
}
}
/*=========================================*
* 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
* param : val
*
* return : String
/*=========================================*
function getMoneyType(val)
{
if (typeof val == "number")
{
val = val.toString();
}
var value = getOnlyNumberDot(val);
var sResult = "";
if (value.length == 0)
{
alert("숫자만 입력하십시오.");
return;
}
if (! isMoneyNumber(value))
{
alert("숫자만 입력하십시오.");
return;
}
var nI;
var nJ = -1;
var subOne;
var flag = false;
for (nI = value.length - 1; nI >= 0; nI--)
{
subOne = value.substring(nI, nI + 1);
sResult = subOne + sResult;
if (subOne == '.')
{
flag = true;
}
if (flag == true)
{
nJ = nJ + 1;
}
if ((nJ % 3 == 0) && (nI != 0) && (nJ != 0))
{
sResult = "," + sResult;
}
}
return sResult;
}
/*=========================================*
* 부호가 있는 소수점 숫자표현(소수점 위의 3자리마다 "," 맞춤)
*
* param : val
*
* return : String
/*=========================================*
function getSignMoneyType(val)
{
if (typeof val == "number")
{
val = val.toString();
}
var s1 = val.substring(0,1);
var slen = val.length;
var sign = "";
var ret = "";
if (val == "-Infinity")
{
return "0";
}
if(slen>1 )
{
if(s1 == "-")
{
sign = "-";
ret = sign + getMoneyType(val.substring(1,slen));
}
else
{
ret = getMoneyType(val);
}
}
else
{
ret = val;
}
return ret;
}
/*=========================================*
* 콤마를 제거한 숫자형태 문자열로 반환(부호와 소수점도 없앰)
*
* param : val
*
* return : String
/*=========================================*
function getOnlyNumber(val)
{
var value = "";
var abit;
if (typeof val != "number" && typeof val !="string")
{
return "0";
}
if (val.length < 1)
{
return "0";
}
if (val == "NaN")
{
return "0";
}
if (val == "-Infinity")
{
return "0";
}
for (i=0;i<val.length;i++)
{
abit = parseInt(val.substring(i,i+1));
if (('0' < abit) || ('9' > abit) )
{
value = value + abit;
}
}
return value;
}
/*=========================================*
* 콤마를 제거한 숫자형태 문자열로 반환(부호, 소수점 그대로)
*
* param : val
*
* return : String
/*=========================================*
function getOnlyNumberDot(val)
{
if (typeof val != "number" && typeof val !="string")
{
return "0";
}
if (val.length < 1)
{
return "0";
}
if (val == "NaN")
{
return "0";
}
if (val == "-Infinity")
{
return "0";
}
var value = "";
var abit; // 소수부분
var delimter = val.indexOf(".");
var numberInteger = ""; // 정수부분
if(delimter < 0) {
numberInteger = val;
abit ='';
} else {
numberInteger = val.substring(0,delimter);
abit = val.substring(delimter+1);
}
var number="";
var leng=numberInteger.length ;
for(i=0 ; i<leng ; i++)
{
var tmp = numberInteger.substring(i,i+1);
if(tmp != ",")
{
number = number+tmp;
}
}
if(abit.length==0)
{
value=number;
}
else
{
value = number+"."+abit;
}
return value;
}
/*=========================================*
* 콤마를 제거한 부호가 있는 숫자형태 문자열로 반환
*
* param : val
*
* return : String
/*=========================================*
function getOnlySignNumber(val)
{
if (val == "-") return 0;
var price = eval(getOnlyNumber(val));
if (val.substring(0,1) == "-")
{
price *= -1;
}
return price;
}
/*=========================================*
* EMedit 날짜 사용시 입력 체크
*
* param : emEditObj
*
* return : boolean
/*=========================================*
function emEditYMD(emEditObj)
{
if(MTrim(emEditObj.Text) != "")
{
if(MTrim(emEditObj.Text).length != 8 && MTrim(emEditObj.Text).length > 0)
{
alert('일자를 모두 입력하십시오.');
emEditObj.SelectAll = "true";
emEditObj.focus();
return false;
}
}
return;
}
/*=========================================*
* 그리드에서 날짜 입력 시 유효성 체크
*
* param : emEditObj
*
* return : boolean
/*=========================================*
function emEditYMD_grid(sVal)
{
sVal = MTrim(sVal);
if (isDateYMD(sVal)) return true;
else return false;
}
/*=========================================*
* 조회조건 시작일과 종료일 입력 유효성 확인 - 컨트롤 이용
*
* param : objFrom, objTo
*
* return : boolean
/*=========================================*
function chkPeriod_Emedit(objFrom, objTo)
{
if (!isDate(objFrom.Text))
{
objFrom.focus();
return false;
}
else if (!isDate(objTo.Text))
{
objTo.focus();
return false;
}
else if (objFrom.Text > objTo.Text)
{
alert("마지막일이 시작일보다 작습니다.");
objFrom.focus();
return false;
}
return true;
}
/*=========================================*
* 앞뒤 공백을 제거한다.
*
* param : sVal
*
* return : String
/*=========================================*
function Trim(sVal)
{
return(LTrim(RTrim(sVal)));
}
/*=========================================*
* 앞 공백을 제거한다.
*
* param : sVal
*
* return : String
/*=========================================*
function LTrim(sVal)
{
var i;
i = 0;
while (sVal.substring(i,i+1) == ' ')
{
i++;
}
return sVal.substring(i);
}
/*=========================================*
* 뒤 공백을 제거한다.
*
* param : sVal
*
* return : String
/*=========================================*
function RTrim(sVal)
{
var i = sVal.length - 1;
while (i >= 0 && sVal.substring(i,i+1) == ' ')
{
i--;
}
return sVal.substring(0,i+1);
}
//------------------------------------------------------------------------------
// DESCRIPTION : 공백문자 제거
// 함수명 : MTrim(공백이 있는 문자열)
// Return Value : 공백이 제거된 문자열
//------------------------------------------------------------------------------
function MTrim(sVal){
var strOri = sVal;
var space = " ";
while (strOri.indexOf(space) != -1){
strOri = strOri.replace(space, "");
}
return strOri;
}
/*=========================================*
* 공백만 존재하거나 아무것도 없는지 확인한다.
*
* param : sVal
*
* return : boolean (true이면 공백이나 Empty이다)
/*=========================================*
function isEmpty(sVal){
if (MTrim(sVal) == '')
{
return true;
}
return false;
}
/*=========================================*
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동
*
* param : objCurrent, objNext
*
* return :
/*=========================================*
function focusMove(objCurrent, objNext)
{
if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
{
objNext.focus();
}
}
/*=========================================*
* 현재 컨트롤과 MaxLength 받아서 MaxLength 되면 다음 컨트롤로 이동(선택)
* param : objCurrent, objNext
* return :
/*=========================================*
function focusMoveSelect(objCurrent, objNext)
{
if ( objCurrent.getAttribute("Maxlength") == objCurrent.value.length)
{
objNext.focus();
objNext.select();
}
}
/*=========================================*
* 완료된 날짜값에 대해 "/" 추가
* param : me(value)
* return : String
/*=========================================*
function calOnMask(me){
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
if(me.length > 3 ) {
var a1 = me.substring(0,4) + "/";
var a2 = me.substr(4,me.length);
var a3 = "";
if (me.length > 5){
a2 = me.substring(4,6) + "/";
a3 = me.substr(6,me.length);
}
me= a1 + a2 + a3;
}
return me;
}
/*=========================================*
* 날짜값 "/" 제거
* param : me(value)
* return : String "/" 제거된 날짜값
/*=========================================*
function calOffMask(me){
var tmp=me.split("/");
tmp=tmp.join("");
return tmp;
}
/*=========================================*
* 날짜값 자동 "/" 붙임.(완성된 날짜값에 대해 /붙임)
*
* param :
*
* return :
/*=========================================*
function cal_value2(me){
if(me.length == 8 ) {
var a1 = me.substring(0,4) + "/";
var a2 = me.substring(4,6) + "/";
var a3 = me.substr(6,me.length);
me= a1 + a2 + a3;
}
return me;
}
/*=========================================*
* 오늘 날짜 생성 ( "/" 붙여서 리턴)
*
* param :
*
* return : todate
/*=========================================*
function todate() {
var now=new Date()
var jyear = now.getYear();
var month=now.getMonth() + 1;
var jmonth = month + "";
if (jmonth.length < 2) {
jmonth = "0" + jmonth;
}
var dat=now.getDate();
var jdate = dat + "";
if (jdate.length < 2) {
jdate = "0" + jdate;
}
//var day=Birdy.getDay()//요일
var tdy = jyear+"/"+jmonth+"/"+jdate;
return tdy;
}
/*--------------------------------------------------------------------------------------------
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(this)"
---------------------------------------------------------------------------------------------*/
function comma_value(sval)
{
if (event.keyCode != 9)
{
var cur = sval.value;
var setMinus = 0;
if (cur.charAt(0) == "-") {
setMinus = 1;
}
cur=cur.replace(/[^.0-9]/g ,"");
cur=cur.replace(/[.]+/g ,".");
if (setMinus == 1)
sval.value = "-" + formatNumbertoString(cur);
else
sval.value = formatNumbertoString(cur);
}
}
/*--------------------------------------------------------------------------------------------
Spec : 숫자입력시 3자리마다 자동으로 콤마 찍기
Argument : string
Return : string
Example : onkeyup="comma_value(str)"
---------------------------------------------------------------------------------------------*/
function formatNumbertoString(cur)
{
leftString = cur;
rightString = ".";
dotIndex = 0;
for(i = 0; i < cur.length; i++){
// 1) '.'이 처음에 입력 되었을때 앞에 0을 더해 "0."을 리턴
// 2) "0."이외의 입력 일 때 "0"만 리턴
if(cur.charAt(i) == "." || (cur.length > 1 && cur.charAt(0) == "0" && cur.charAt(1) != "."))
{
dotIndex = i;
if(dotIndex == 0)
{
if (cur.charAt(0) == ".") leftString="0.";
else leftString="";
return leftString;
}
break;
}
}
if(dotIndex != 0) //dot가 있을 경우..
{
leftString = cur.substr(0, dotIndex);
rightString = cur.substr(dotIndex+1);
rightString = rightString.replace(/\./g,"");
}
else //없으면..
{
leftString = cur;
}
len=leftString.length-3;
while(len>0)
{
leftString=leftString.substr(0,len)+","+leftString.substr(len);
len-=3;
}
if(rightString != ".")
return (leftString + "." + rightString);
else
return leftString;
}
// 숫자만 입력 (소수점 허용, 음수 허용)
// 사용법 : onKeyPress = onlyNum();
function onlyNum()
{
if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 허용, 음수 불가)
// 사용법 : onKeyPress = onlyNum2();
function onlyNum2()
{
if (event.keyCode < 46 || event.keyCode > 57 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 불가, 음수 허용)
// 사용법 : onKeyPress = onlyNum3();
function onlyNum3()
{
if (event.keyCode < 45 || event.keyCode > 57 || event.keyCode == 46 || event.keyCode == 47)
event.returnValue = false;
}
// 숫자만 입력 (소수점 불가, 음수 불가)
// 사용법 : onKeyPress = onlyNum4();
function onlyNum4()
{
if (event.keyCode < 48 || event.keyCode > 57)
event.returnValue=false;
}
function onlyChar(sval)
{
var sBit = '';
str = sval.value;
for(i=0;i<str.length;i++)
{
sBit = str.charAt(i);
if(escape( sBit ).length <= 4)
{
var sAlphabet="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(sAlphabet.indexOf(sBit) < 0)
{
alert("영문 또는 한글만 입력해 주십시오.");
return false;
}
}
}
return true;
}
/*=========================================*
* 입력완료된 숫자값에 대하여 콤마를 찍어줄때 사용(소수점 이하 처리 안됨)
* 콤마 형식을 사용할 경우에는 onkeyup이벤트로 사용하기 바라며,
* 다음의 펑션을 호출할때는 comma_value(me) 펑션을 호출하기 바람.
* param : value
/*=========================================*
function numOnMask(me){
var tmpH = null;
if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=me.substring(0,1);
me=me.substring(1,me.length);
} //me.indexOf('-')
if(me.length > 3){
var c=0;
var myArray=new Array();
for(var i=me.length;i>0;i=i-3){
myArray[c++]=me.substring(i-3,i);
}
myArray.reverse();
me=myArray.join(",");
}
if(tmpH){
me=tmpH+me;
}
return me;
}
/*=========================================*
* 콤마가 들어간 숫자에서 ","를 뺀다.
* param : value
/*=========================================*
function numOffMask(me){
var tmp=me.split(",");
tmp=tmp.join("");
return tmp;
}
// 입력 완료된 숫자 값에 컴마를 적용하여준다(소수점 이하는 "," 안 붙음)
// return : String
function numOnMask2(me){
var tmpH;
if(!isMoneyNumber4(me)) {
if(me.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=me.substring(0,1);
me=me.substring(1,me.length);
} //me.indexOf('-')
if(me.length > 3){
var c=0;
var myArray=new Array();
for(var i=me.length;i>0;i=i-3){
myArray[c++]=me.substring(i-3,i);
}
myArray.reverse();
me=myArray.join(",");
}
if(tmpH){
me=tmpH+me;
}
}else{
var e = me;
e = e.split(".");
var myStr = e[0];
//alert(myStr);
if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=myStr.substring(0,1);
myStr=myStr.substring(1,me.length);
} //me.indexOf('-')
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
if(tmpH){
me=tmpH+myStr+"."+e[1];
}
else {
me=myStr+"."+e[1];
}
}
return me;
}
// 입력 완료된 숫자 값에 컴마를 적용하고 소수점 이하는 삭제한다
// return : String
function numOnMask3(me){ //단순히 값에 컴마를 적용할때 사용
var tmpH;
if(isMoneyNumber3(me)) { // 양수&음수 체크 (true : 양수, false : 음수)
var e = me;
e = e.split(".");
var myStr = e[0];
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
me = myStr;
}else{ // 음수 일때
var e = me;
e = e.split(".");
var myStr = e[0];
if(myStr.charAt(0)=="-"){//음수가 들어왔을때 '-'를 빼고적용되게..
tmpH=myStr.substring(0,1);
myStr=myStr.substring(1,me.length);
}
if(myStr.length > 3){
var c=0;
var myArray=new Array();
for(var i=myStr.length;i>0;i=i-3){
myArray[c++]=myStr.substring(i-3,i);
}
myArray.reverse();
myStr=myArray.join(",");
}
if(tmpH){
me=tmpH+myStr;
}
else {
me=myStr;
}
}
return me;
}
/*=========================================*
* 입력값을 소수점 이하 몇 자리까지 보여줄지 정한다.
* 소수점 이하 자리수가 입력된 값보다 작으면 0으로 채운다.
* param : sVal 입력스트링, iSize 소수자릿수
* return : String
/*=========================================*
function numOnMask4(sVal,iSize)
{
if(isNumberDot(sVal)) // 숫자형인지 확인
{
var e = sVal;
e = e.split(".");
if (!e[1]) {
if (iSize == 0) {
sVal = numOnMask(e[0]);
return sVal;
}
else {
e[1] = "0";
}
}
while (e[1].length < iSize) { // 주어진 소숫점 이하 자릿수 만큼 뒤에 "0" 추가
e[1] = e[1] + "0";
}
sVal = numOnMask(e[0]) + "." + e[1].substr(0,iSize);
return sVal;
}
else {
return false;
}
}
/*=========================================*
* 입력값에 마스킹을 적용한다.(소수점 이하와 부호를 삭제하고 콤마추가)
* param : sVal 입력스트링
* return : String
/*=========================================*
function numOnMask5(sVal)
{
var e = sVal;
e = e.split(".");
if(!isMoneyNumber3(e[0])) // true이면 양수, false이면 음수
e[0] = e[0].substring(1)
return numOnMask(e[0]);
}
/*=========================================*
* 입력값에 마스킹을 적용한다.(부호를 삭제하고 콤마추가. 소수점은 그대로 둠)
* param : sVal 입력스트링
* return : String
/*=========================================*
function numOnMask6(sVal)
{
var e = sVal;
e = e.split(".");
if(!isMoneyNumber3(e[0])) // isMoneyNumber3 - true이면 양수, false이면 음수
e[0] = e[0].substring(1);
return numOnMask(e[0]) + "." + e[1];
}
/*=========================================*
* 숫자 외의 값이 입력되어있으면 false 리턴
* param : sval (object)
* return :
/*=========================================*
function onlyNumber(sval) {
var strVal = sval.value
if (strVal.length < 1) {
return false;
}
strVal = numOffMask(strVal);
var result = isNumberDot(strVal);
if (!result) {
//alert("숫자만 입력 가능합니다.");
sval.focus();
return false;
}
}
/*=========================================*
* 특수문자 값이 입력되었는지 체크(특수문자가 있으면 false 리턴)
* param : sval (object)
* return :
/*=========================================*
function chkValidChar(sval) {
var re = new RegExp("[%\']","ig");
var retVal = re.test(sval.value);
if (retVal == true)
{
alert("검색어에 다음 문자를 사용할 수 없습니다 : \n\n % \' ");
return false;
}
else
return true;
}
/*=========================================*
*
* 윈도우 오픈1 (사용자 지정 위치생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wTop 지정 창 높이정렬기준
* param : wLeft 지정 창 왼쪽정렬기준
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
/*=========================================*
function win_open(wUrl,wTitle,wTop,wLeft,wWidth,wHeight,wSco) {
window.open(wUrl,wTitle,"top="+wTop+",left="+wLeft+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}
/*=========================================*
*
* 윈도우 오픈2 (무조건 가운데 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
/*=========================================*
function win_open2(wUrl,wTitle,wWidth,wHeight,wSco) {
var top_po = (screen.availHeight/2) - (wHeight/2);
var left_po = (screen.availWidth/2) - (wWidth/2);
//alert(top_po +" "+left_po+ " "+wHeight+" "+wWidth);
window.open(wUrl,wTitle,"top="+top_po+",left="+left_po+",width="+wWidth+",height="+wHeight+",scrollbars="+wSco);
}
/*=========================================*
*
* 윈도우 오픈3 (무조건 전체 생성)
* param : wUrl 지정url
* param : wTitle 지정타이틀
* param : wWidth 창넓이
* param : wHeight 창높이
* param : wSco 스크롤바 생성유무, 1:생성 0:비생성
/*=========================================*
function win_open3(wUrl,wTitle) {
var wWidth = screen.availWidth;
var wHeight = screen.availHeight;
window.open(wUrl,wTitle,"top=0,left=0,width="+wWidth+",height="+wHeight+",scrollbars=0");
}
/***********************************
* 고객번호 및 계좌번호
************************************/
function cust_set_num(sval) {//고객번호 5자리 세팅
var cust_val = sval.value;
if (cust_val == "") return;
var cust_length=cust_val.length;
if (cust_length < 5) {
for (var i = 0; i < (5 - cust_length); i++) {
cust_val = "0" + cust_val;
}
sval.value = cust_val;
}
}
function cust_key_num(sval,obj) {
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
if (sval.length == 5) {
obj.focus();
obj.select();
}
}
function acnt_set_num(sval,obj) {//계좌번호 2자리 세팅
var acnt_val = sval.value;
var acnt_length = acnt_val.length;
if (obj.value == "") return;
if (acnt_val == "") acnt_length = 0;
if (acnt_length < 2) {
for (var i = 0; i < (2 - acnt_length); i++) {
acnt_val = "0" + acnt_val;
}
sval.value = acnt_val;
}
}
function acnt_key_num() {
if (event.keyCode<48||event.keyCode>57){//숫자외금지
event.returnValue=false;
}
}
function rdo_val(sval) {
// 이펑션은 체크박스와 옵션버튼의 활성화 비활성화에 사용
if (sval.checked == true) {
sval.checked = false;
}else {
sval.checked = true;
}
}
function disp_err(sval) {
ErrMsgForm.errMsg.value = sval;
window.open("/err_msg.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}
function disp_err1(sval) {
ErrMsgForm.errMsg.value = sval;
window.open("/err_msg1.screen","에러메세지","top=300px,left=310px,height=300px,width=500px,resizable=0,scrollable=1");
}
/**
* 두 날짜에 며칠 차이나는지 구함
* from_val이 to_val보다 크면 -붙여서 리턴
*/
function getDayInterval(from_val,to_val) {
var day = 1000 * 3600 * 24; //24시간
if(isDate(from_val)==false)
{
return;
}
if(isDate(to_val)==false)
return;
var from_date=toTimeObject(from_val);
var to_date=toTimeObject(to_val);
var day_interval=parseInt((to_date - from_date) / day, 10);
//alert(to_date+" - "+from_date+"="+day_interval);
return day_interval;
}
/**
* Time 스트링을 자바스크립트 Date 객체로 변환
* parameter time: Time 형식의 String
*/
function toTimeObject(time) { //parseTime(time)
var year = time.substr(0,4);
var month = time.substr(4,2) - 1; // 1월=0,12월=11
var day = time.substr(6,2);
return new Date(year,month,day);
}
// readonly나 disabled로 막힌 경우를 제외하고 tabindex 값을 지정하여 입력박스 순서대로 이동
function tabIndexing()
{
elements = document.all;
for (i=0;i<elements.length ;i++)
{
if(elements[i].readOnly == false){
elements[i].tabIndex = i;
}
}
}
/*=========================================*
* 조회버튼 클릭시 고객번호/계좌번호 입력 여부 확인
* param : obj1 고객번호, obj2 계좌번호, field 필드명
* return : boolean
/*=========================================*
function chkCustNoAcntNo(obj1, obj2, field)
{
if (field == null) field = '';
obj1.value = MTrim(obj1.value);
obj2.value = MTrim(obj2.value);
if (obj1.value.length == 0 && obj2.value.length == 0)
{
return true;
}
else if (obj1.value.length == 0 && obj2.value.length != 0)
{
alert(field+" 번호를 입력하십시오.");
obj1.select();
obj1.focus();
return false;
}
else if (obj1.value.length != 0 && obj2.value.length == 0)
{
alert(field+" 번호를 입력하십시오.");
obj2.select();
obj2.focus();
return false;
}
return true;
}
function win_open_BuzPwd()
{
var return_value = window.showModalDialog("checkPwd.screen", "", "dialogHeight: 100px; dialogWidth: 306px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
return return_value;
}
function win_open_BuzPwdWithManagerPwd()
{
var return_value = window.showModalDialog("COLO0106mc_00.do", "", "dialogHeight: 114px; dialogWidth: 336px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:0;");
return return_value;
}
// return 값 없는 경우
function submain_popup(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
parent.startTimer();
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
return;
}
// return 값이 String인 경우
function submain_popup2(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup2.screen", pUrl, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
//parent.startTimer();
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
// 파라미터로 window 객체 사용
function submain_popup3(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup3.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center: Yes; help: No; resizable: Yes; status: No;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode =='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
// 파라미터로 window 객체를 사용하면서 return 값이 Object
function submain_popup4(pUrl, urlHeight, urlWidth)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup4.screen?pUrl="+pUrl, window, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px;center:Yes; help:No; resizable:Yes; status:No; scroll:Yes;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
// parameter로 Object를 사용
function submain_popup5(pUrl, urlHeight, urlWidth, obj)
{
//parent.stopTimer();
var returnCode = window.showModalDialog("submain_popup5.screen?pUrl="+pUrl, obj, "dialogHeight: "+urlHeight+"px; dialogWidth: "+urlWidth+"px; edge: Raised; center:Yes; help:No; resizable:Yes; status:No;");
//parent.startTimer();
if (typeof(returnCode) == 'object')
{
return returnCode;
}
else
{
if(returnCode=='n')
{
parent.logout();
}
else if(returnCode=='timerlogout')
{
parent.timer_logout();
}
else if (typeof(returnCode) == "undefined")
{
return 'undefined';
}
else
{
return returnCode;
}
}
}
function start_timer()
{
// if ( opener==null )
// {
// parent.startTimer();
// return;
// }
// else
// {
// opener.start_timer();
// return;
// }
}
이렇게만 두니 ..좀 그러네 퍼왔다.
조금 참고할만한것이 있네 ^^;