반응형

//var    _intValue   = '0123456789';
//var    _upperValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
//var    _lowerValue = 'abcdefghijklmnopqrstuvwxyz';
//var    _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
//var    dayOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

n = (document.layers) ? 1:0;
ie = (document.all) ? 1:0;
if (n) document.captureEvents(Event.KEYPRESS);

function fnTest(pval) {
  fnTest =  doReverse(pval.value) ;
  alert (fnTest);
}

// -------------------------------------------------------------------
// Function name: isInt
// Description  : 숫자인가를 체크하는 함수
// Parameter    : value(체크대상 문자)
// -------------------------------------------------------------------
// Usage        : var a='3'; if(isInt(a)) { alert("숫자입니다"); }
// -------------------------------------------------------------------
function isInt(value) {
 var _intValue   = '0123456789';
    var j;
    for(j=0;j<_intValue.length;j++)
      if(value == _intValue.charAt(j)) {
    return true;
 }
    return false;
}

// --------------------------------------------------------------------
// Function name: isNumeric
// Description  : 숫자로만 구성되어 있는지를 검사
// Parameter    : obj(화면컨트롤)
// --------------------------------------------------------------------
// Usage        : <input type="text" onBlur="isNumeric(this)">
// Caution      : 화면컨트롤에 데이타가 없는 경우에는 false를 리턴
// --------------------------------------------------------------------
function isNumeric(obj) {
 var str=obj.value;
 if (str.length == 0)
 return false;
 for (var i = 0; i < str.length; i++){
 var ch = str.substring(i, i + 1);
 if ((ch < "0" || "9" < ch) ){
     obj.focus();
     obj.select();  
   return false;
  }
 }
 return true;
}

// ---------------------------------------------------------------------
// Function name : isNumber(str)
// Description   : 숫자로만 구성되어 있는지를 검사, 숫자이면 return true
// Parameter     : str(측정대상값)
// ----------------------------------------------------------------------
// Usage         : if(isNumber(str)) { alert("숫자입니다.."); },
// Caution       : isNumeric(obj)과 다른점은 obj가 아닌 value값 사용
// ----------------------------------------------------------------------
function isNumber(value) {
 var result = true;
 for(j = 0; result && (j < value.length); j++) {
  if((value.substring(j, j+1) < "0") || (value.substring(j, j+1) > "9")) {
   result = false;
  }
 }
 return result;
}

// ---------------------------------------------------------------------
// Function name: getNumOnly
// Description  : 숫자와 문자열이 혼합되어 있는 것에서 숫자만 리턴
// Parameter    : obj(검사대상 문자열)
// ---------------------------------------------------------------------
// Usage        : <input type="text" onBlur="getNumOnly(this);">
//                검사대상 문자열이 '1134sd3dkk8'일 경우 '113438'만 리턴
// ---------------------------------------------------------------------
function getNumOnly(obj) {
 var strNew = "";
  var chkstr = "0123456789";
 var str = obj.value;
 for (var i = 0; i < str.length; i++) {
   if (chkstr.indexOf(str.substring(i, i + 1)) >= 0) {
     strNew += str.substring(i, i + 1);
   }
 }
  return strNew;
}

// ---------------------------------------------------------------
// Function name : isFloat(str)
// Description   : 숫자값인지 체크, '.' 포함
// Parameter     : str(측정대상값)
// ---------------------------------------------------------------
// Usage         : if(isFloat(str)) { alert("Float값입니다."); }
// ---------------------------------------------------------------
function isFloat(value) {
 var count = 0;
 var ch;
 
 for(i=0; i<value.length; i++) {
  ch = value.charAt(i);
 
  if(isNaN(ch)) {
   if(ch == ".") {
    count++;
   } else {
    return false;
   }
  }    
 }
 
 if(count > 1) {
  return false;
 } else {
  return true;
 }
 
 return result;
}

// -------------------------------------------------------------------
// Function name : getOnlyNumberKey()
// Description   : 키보드 입력시 숫자만 입력 가능
// Parameter     :
// -------------------------------------------------------------------
// Usage         : onKeyDown=getOnlyNumberKey()
// -------------------------------------------------------------------
function getOnlyNumberKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // 자판 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // 자판 -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // 방향키
 {
  return true;
 } else {
  event.returnValue = false;
 }
}

// ---------------------------------------------------------------------
// Function name : getNumberNCommaKey() 
// Description   : 키보드 입력시 숫자 및 ','가 입력 가능
// Parameter     :
// ---------------------------------------------------------------------
// Usage         : onKeyDown=getNumberNCommaKey() 
// ---------------------------------------------------------------------
function getNumberNCommaKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // 자판 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // 자판 -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 188)             // 자판 ,
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // 방향키
 {
  return true;
 } else {
  event.returnValue = false;
 }

}

// ----------------------------------------------------------------------
// Function name : getNumberNDotKey()
// Description   : 키보드 입력시 숫자 및 '.'가 입력 가능
// Parameter     :
// ----------------------------------------------------------------------
// Usage         : onKeyDown=getNumberNDotKey()
// ----------------------------------------------------------------------
function getNumberNDotKey() {
 if ((event.keyCode >=48 && event.keyCode <=57)   // 자판 0~9
  || (event.keyCode >=96 && event.keyCode <= 105)  // keypad 0~9
  || (event.keyCode == 109)             // 자판 -
  || (event.keyCode == 189)             // keypad -
  || (event.keyCode == 110)             // 자판 .
  || (event.keyCode == 190)             // keypad .
  || (event.keyCode == 8)              // back space
  || (event.keyCode == 9)              // tab
  || (event.keyCode == 13)             // enter
  || (event.keyCode == 46)             // delete
  || (event.keyCode >= 37 && event.keyCode <= 40)) // 방향키
 {
  return true;
 } else {
  event.returnValue = false;
 }
}

// --------------------------------------------------------------------
// Function name : isDigitOrBar(str)
// Description   : '-' 기호를 포함한 숫자여부 판단, 숫자면 return true
// Parameter     : str(대상 문자열)
// --------------------------------------------------------------------
// Usage         : isDigitOrBar(str), 부호의 선행, 후행은 체크 못함
// --------------------------------------------------------------------
function isDigitOrBar(str) {
 for(var i=0; i < str.length; i++) {
  var ch= str.charAt(i) ;
  if((ch < "0" || ch > "9") && ch!="-") {
   return false;
  }
 }
 return true;
}

//---------------------------------------------------------------------
// Function name : getFormattedVal
// Description   : 숫자를 포멧이 갖추어진 문자열로 바꿈
//                 ###3 <= 숫자3은 세자리마다 ,를 찍겠다는 말
//                 .##### <= .(소수점)뒤로 5자리까지 표현하겠다는 말
// Parameter     : value  : 검사할 값
//                 format : 변환할 형태
// Return        :  변환된 값 리턴
// --------------------------------------------------------------------
// Usage         : getFormattedVal(value , "###3.#####")
//---------------------------------------------------------------------
function getFormattedVal(value,format) {
    value = ""+value;

    if(!format)
      return value;

    var sp = parseInt(format.charAt(3));

    if(!sp)
      return value;

    var pos = 0;
    var ret = "";
    var vSplit = value.split('.');
    var fSplit = format.split('.');
    var fp = fSplit[1];
    var fv = vSplit[1];
    var lv = vSplit[0];
    var len = lv.length;

    for(var i = len % sp; i < len; i += sp){
        if(i == 0 || lv.charAt(i-1) == '-')
            ret += lv.substring(pos,i);
        else
            ret += lv.substring(pos,i)+',';
        pos = i;
    }

    ret += lv.substring(pos,len);

    if(!fv)
        fv = "";
    if(!fp)
        fp = "";

    var len1 = fp.length;
    var len2 = fv.length;

    if(len1)
      ret += '.' + fv.substring(0,len1) + fp.substring(len1,len2);
    return ret;
}


//-------------------------------------------------------------------
// Function name : changeInt2Han
// Description   : 숫자 -> 한글로 변환
// Parameter     : string  : 변환 할 값
// Return        : 변환된 값 리턴 / 123 -> 일백이십삼
// -------------------------------------------------------------------
// Usage         : changeInt2Han(string)
//--------------------------------------------------------------------
function changeInt2Han(string) {
 hn = new Array("영","일","이","삼","사","오","육","칠","팔","구");
 hj = new Array("","만","억","조","경","해");
 ul = new Array("영천","영백","영십","영");
 tm = new Array();
 result = "";

 if (string.charAt(0)=="-") {
  result = "마이너스 ";
  string = string.substr(1,string.length-1);
 }

 loop_size = Math.ceil(string.length/4);
 string2 = "";

 for (count=string.length; count >= 0; count--)
  string2 += string.substring(count,count-1);
  string = string2;

 for (A=0;A<loop_size;A++) {
  sum = hj[A] + " ";
  tm[A] = string.substr(A*4,4);

  tm2 = "";
 
  for (count=tm[A].length; count >= 0; count--)
   tm2 += tm[A].substring(count,count-1);
 
  tm[A] = tm2;
  part_jari = tm[A].length;
 
  for (D=0;D<10;D++) {
   for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]);
  }

    if (part_jari == 4) tm[A] = tm[A].charAt(0)+"천"+tm[A].charAt(1)+"백"+tm[A].charAt(2)+"십"+tm[A].charAt(3);
    else if (part_jari == 3) tm[A] = tm[A].charAt(0)+"백"+tm[A].charAt(1)+"십"+tm[A].charAt(2);
  else if (part_jari == 2) tm[A] = tm[A].charAt(0)+"십"+tm[A].charAt(1);
  else tm[A] = tm[A].charAt(0);

  for (C=0;C<4;C++) {
   if (tm[A].match(ul[C])) {
    part_jari--; tm[A] = tm[A].replace(ul[C],"");
   }
  }
   
  if (part_jari != 0) tm[A] += sum;
  }

 for (loop_size;loop_size>-1;loop_size--)
  result += tm[loop_size];
 
 result = result.replace("undefined","");
 return result;
}

//-----------------------------------------------------------------------
// Function name : changeInt2HanJa
// Description   : 숫자 -> 한자로 변환
// Parameter     : string  : 변환 할 값
// Return        : 변환된 값 리턴 / 일백이십삼 -> 壹百貳拾參
// ----------------------------------------------------------------------
// Usage         : changeInt2HanJa(string)
//-----------------------------------------------------------------------
function changeInt2HanJa(string) {
 hn = new Array("영","壹","貳","參","四","五","六","七","八","九");
 hj = new Array("","萬","億","兆");
 ul = new Array("영千","영百","영拾","영");
 tm = new Array();
 result = "";

 if (string.charAt(0)=="-") {
  result = "마이너스 ";
  string = string.substr(1,string.length-1);
 }
 loop_size = Math.ceil(string.length/4);
      string2 = "";
 for (count=string.length; count >= 0; count--)
  string2 += string.substring(count,count-1);
   
 string = string2;
 
 for (A=0;A<loop_size;A++) {
  sum = hj[A] + " ";
  tm[A] = string.substr(A*4,4);

  tm2 = "";

  for (count=tm[A].length; count >= 0; count--)
   tm2 += tm[A].substring(count,count-1);
 
  tm[A] = tm2;
  part_jari = tm[A].length;
  for (D=0;D<10;D++) {
   for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]);
  }

  if (part_jari == 4) tm[A] = tm[A].charAt(0)+"千"+tm[A].charAt(1)+"百"+tm[A].charAt(2)+"拾"+tm[A].charAt(3);
  else if (part_jari == 3) tm[A] = tm[A].charAt(0)+"百"+tm[A].charAt(1)+"拾"+tm[A].charAt(2);
  else if (part_jari == 2) tm[A] = tm[A].charAt(0)+"拾"+tm[A].charAt(1);
  else tm[A] = tm[A].charAt(0);
  for (C=0;C<4;C++) {
   if (tm[A].match(ul[C])) {
    part_jari--; tm[A] = tm[A].replace(ul[C],"");
   }
  }
  if (part_jari != 0) tm[A] += sum;
 }

 for (loop_size;loop_size>-1;loop_size--) result += tm[loop_size];
   result = result.replace("undefined","");

 return result;
}

//-----------------------------------------------------------------------------
// Function name : isFraction
// Description   : 입력된 문자가 숫자, 분수(1/3,2/5..)인가를 체크하는 함수
// Parameter     : obj(입력 컨트롤명)
// ----------------------------------------------------------------------------
// Usage         : 사용자가 텍스트박스에 숫자값으로만 입력되어야 할 경우 이를
//                 검증하기 위해서 아래와 같이 사용
//                 <input type="text" onBlur="isFraction(this)">
//-----------------------------------------------------------------------------
function isFraction(obj) {
 var i,j;
 var str = new String(obj.value);
 var check_slash = 0;

 if ((str == '')||(str.length == 0))
   return true;

 for(i=0;i< str.length;i++) {
  if(!isInt(str.charAt(i))) {
 
   if(str.charAt(i) != '/') {
    alert('정수 또는 분수만 입력가능합니다.');
    obj.focus();
    obj.select();
    return false;
    } else {
    check_slash++;
    if (i==0) {
     alert('정수 또는 분수만 입력가능합니다.');
     obj.focus();
     obj.select();
     return false;
    }
   }
  }
 }
 j = i -1;

 if (str.charAt(j) == '/' || check_slash > 1) {
  alert('정수 또는 분수만 입력가능합니다.');
  obj.focus();
  return false;
 }
 return true;
}

//---------------------------------------------------------------------------------------
// Function name : checkDigitBody2
// Description   : 숫자 혹은 구분자('-', '.' 등)로만 구성되어 있는지를 검사
// Parameter     : obj(화면컨트롤), sep(구분자)
// --------------------------------------------------------------------------------------
// Usage         : <input type="text" onBlur="checkDigitBody2(this, '-')">
// Caution       : 화면컨트롤에 데이타가 없는 경우에는 false를 리턴
// --------------------------------------------------------------------------------------
function checkDigitBody2(obj, sep) {
 var str=obj.value;
 if (str.length == 0)
  return false;
 for (var i = 0; i < str.length; i++) {
  var ch = str.substring(i, i + 1);
  if ((ch < "0" || "9" < ch)) {
   if (ch != sep)
    return false;
  }
 }
 return true;
}

//---------------------------------------------------------------------------------------
// Function name : getNumberOnly
// Description   : 실수,정수,금액 유효성 체크 및 허용하지 않는 문자는 경고 없이 자동 삭제
// Parameter     : 필수 : obj(입력 컨트롤명), cmd(숫자 유형)
//---------------------------------------------------------------------------------------
// Usage         : <input name="num1" type="text"  onkeyup= "getNumberOnly(this, 'money')"  ...>
// Caution       : 일반적으로 다른 function에서 내부적 호출로 쓰임
//---------------------------------------------------------------------------------------
function getNumberOnly(obj, cmd) {
 var instr = obj.value;
 var cstr = "";
 var tempstr = "";

 if(cmd == "real") {
  cstr = "0123456789.-";          //실수
 } else if(cmd == "real2") {
  cstr = "0123456789.";      //양의실수
 } else if(cmd=="int") {
  cstr="0123456789-";             //정수
 } else if(cmd=="money") {
  cstr="0123456789,";       //금액
 } else if(cmd == "real3") {
  cstr = "0123456789.-,";         //실수 : , 포함
 } else if(cmd=='numeric') {
  cstr = "0123456789";      //숫자
 }

 //거꾸로 돌려야 함
 if(instr.length) {
  var len = instr.length;
  for(var i=len-1; i>=0; i--) {
   if(cstr.lastIndexOf(instr.charAt(i)) == -1) {
    instr = instr.substring(0, i)+ instr.substring(i+1);
    obj.value = instr;
   }
  }
 }
}

// --------------------------------------------------------------------------------------------
// Function name : addCommaStr
// Description   : 입력창에 숫자 데이터를 입력할때 자동으로 3자리별로 ',' 가 붙어 입력되게함
// Parameter     : str(문자열(숫자))
// --------------------------------------------------------------------------------------------
// Usage         :
// Caution       : 이 함수를 사용할때 Input 박스 값이 숫자 값인지 체크할 때는 쉼표를 자동으로
//                 체크하여 숫자여부를 판단하는 checkDigitBody2(obj, ",")를 사용한다.
// --------------------------------------------------------------------------------------------
function addCommaStr(str) {
 if (str.length < 1) {
    return "";
  } else {
  var tm = "";
  var ck = "";
  if (str.substring(0, 1) == "-") { //음수
   tm = str.substring(1, str.length);
   ck = "Y";
  } else {//양수
   tm = str;
   ck = "N";
  }
  var st = "";
  var cm = ",";

  for (var i = tm.length, j = 0; i > 0; i--, j++) {
   if ((j % 3) == 2) {
    if (tm.length == j + 1) st = tm.substring(i - 1, i) + st;
    else st = cm + tm.substring(i - 1, i) + st;
   } else {
    st = tm.substring(i - 1, i) + st;
   }
  }
  if (ck == "Y") st = "-" + st;
 }
 return st;
}

// --------------------------------------------------------------------------------------------
// Function name : delCommaStr
// Description   : 화폐구분자로 사용되는 ','문자를 제거하는 함수.
//                 보통 화면에는 ,로 표시하고, DB에는 ','를 제외한 숫자만을 insert할 때 사용
// Parameter     : str(금액형태의 문자열)
// --------------------------------------------------------------------------------------------
// Usage         :
// --------------------------------------------------------------------------------------------
function delCommaStr(str) {
 if (str.length < 1) {
  return "";
 } else {
  var st = "";
  var sp = ",";
  for (var i = 0; i < str.length; i++) {
   if (sp.indexOf(str.substring(i, i + 1)) == -1) {
    st += str.substring(i, i + 1);
   }
  }
  return st;
 }
}

// --------------------------------------------------------------------------------------------
// Function name : delComma
// Description   : 화폐구분자로 사용되는 ','문자를 제거하는 함수.
//                 보통 화면에는 ,로 표시하고, DB에는 ','를 제외한 숫자만을 insert할 때 사용
// Parameter     : obj(화면 입력박스명)
// --------------------------------------------------------------------------------------------
// Usage         :
// Caution       : delCommaStr 과 다른점은 value 가 아닌 obj값 사용
// --------------------------------------------------------------------------------------------
function delComma(obj) {
 var str =  String(obj.value);
 if (str.length < 1) {
  return "";
 } else {
  var st = "";
  var sp = ",";
  for (var i = 0; i < str.length; i++) {
    if (sp.indexOf(str.substring(i, i + 1)) == -1) {
      st += str.substring(i, i + 1);
    }
  }
  return st;
 }
}

// --------------------------------------------------------------------------------------------
// Function name : isUpperChar
// Description   : 영문 대문자인지를 체크하는 함수
// Parameter     : value(체크대상 문자)
// --------------------------------------------------------------------------------------------
// Usage         : var a='A'; if(isUpperChar(a)) { alert("대문자입니다"); }
// --------------------------------------------------------------------------------------------
function isUpperChar(value) {
 var _upperValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 var i;
 for(i=0;i<_upperValue.length;i++)
  if(value == _upperValue.charAt(i)) {
   return true;
  }

 return false;
}

// --------------------------------------------------------------------------------------------
// Function name : isLowerChar
// Description   : 영문 소문자인지를 체크하는 함수
// Parameter     : value(체크대상 문자)
// --------------------------------------------------------------------------------------------
// Usage         : var a='k'; if(isLowerChar(a)) { alert("소문자입니다"); }
// --------------------------------------------------------------------------------------------
function isLowerChar(value) {
 var _lowerValue = 'abcdefghijklmnopqrstuvwxyz';
 var i;
 for(i=0;i<_lowerValue.length;i++)
  if(value == _lowerValue.charAt(i)) {
   return true;
  }

 return false;
}

// -------------------------------------------------------------------------------------------------
// Function name : 특수문자여부체크
// Description   : 특수문자인지를 체크하는 함수(영문이나 한글이 아닌)
// Parameter     : value(체크대상 문자)
// -------------------------------------------------------------------------------------------------
// Usage         : var a='&'; if(isEtcChar(a)) { alert("특수문자입니다"); }
// -------------------------------------------------------------------------------------------------
function isEtcChar(value) {
 var _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
    var j;
    for(j=0;j<_etcValue.length;j++)
        if(value == _etcValue.charAt(j)) {
            return true;
        }
    return false;
}


// -------------------------------------------------------------------------------------------------
// Function name : isEtcChar(value)
// Description   : 특수문자인지를 체크하는 함수(영문이나 한글이 아닌)
// Parameter     : value(체크대상 문자), 문자열이 아님 char하나에 대한 체크가능
// -------------------------------------------------------------------------------------------------
// Usage         : var a='&'; if(cmm_is_etc_char(a)) { alert("특수문자입니다"); }
// -------------------------------------------------------------------------------------------------
function isEtcString(value) {
 var _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';
 var i,j;
 for(i=0;i<value.length;i++) {
  for(j=0;j<_etcValue.length;j++)
   if(value.charAt(i) == _etcValue.charAt(j)) {
    return true;
   }
 }
 return false;
}

// -------------------------------------------------------------------------------------------------
// Function name : 영문대문자 변환
// Description   : 영문대문자로 변환하는 함수
// Parameter     : obj(변환대상 문자열을 가지고 있는 화면 컨트롤오브젝트) cmm_to_upper
// -------------------------------------------------------------------------------------------------
// Usage         : 사용자가 소문자로 입력하더라도 DB에는 대문자로 입력하고자 하는 경우
// -------------------------------------------------------------------------------------------------
function getUpperStr(obj) {
  var strNew = '';
 var str = obj.value;
    for(i=0 ; i<str.length; i++ ) {
   if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
    strNew += str.charAt(i).toUpperCase() ;
   else
    strNew +=  str.charAt(i);
    }
 
 obj.value = strNew;
}

// 사용빈도 : 중
// 함수명: 몇개의 정해진 문자만 입력가능하도록 검사하는 함수
// 설  명: 정해진 문자열(영문자, 공백, '-', ',')만 입력하는 지를 검사하는 함수
// 인  자: ctl_digit(화면컨트롤)
// --------------------------------------------------------------------------------------------
// 사용법: <input type="text" onBlur="cmm_check_english_body(this)">
// 주의사항: 아래 소스를 변형하여 검사대상문자열을 변경하여 사용
// --------------------------------------------------------------------------------------------
function checkEnglishBody(obj) {
 var str=obj.value;
 if (str.length == 0)
  return false;
 // Checks that characters are numbers or hyphens.
 for (var i = 0; i < str.length; i++) {
  var ch = str.substring(i, i + 1);
  if(ch != "-") {
   if ((ch < "A" || "z" < ch )) {
    if (ch == " ")
      ;
    else if (ch == ",")
     ;
    else
   
    return false;
   }
  }
 }
 return true;
}

// 사용빈도 : 상
// 함수명: 문자열 좌측공백제거
// 설  명: 문자열 좌측의 공백 제거 처리 함수
// 인  자: str(체크대상 문자)
// --------------------------------------------------------------------------------------------
// 사용법: str = cmm_ltrim(str);
// --------------------------------------------------------------------------------------------
function getLtrim(str) {
 while(str.substring(0,1) == ' ')
  str = str.substring(1, str.length);
 return str;
}

// 사용빈도 : 중
// 함수명: 문자열 중간공백제거
// 설  명: 문자열 중간의 공백 제거 처리 함수
// 인  자: str(체크대상 문자)
// --------------------------------------------------------------------------------------------
// 사용법: str = cmm_mtrim(str);
// --------------------------------------------------------------------------------------------
function getMtrim(str) {
 for (i=0; i < str.length;)
  if (str.substring(i,i+1) == ' ')
   str = str.substring(0,i) + str.substring(i+1,str.length);
  else
   i++;

  return str;
}

// 사용빈도 : 상
// 함수명: 문자열 우측공백제거
// 설  명: 문자열 우측의 공백 제거 처리 함수
// 인  자: str(체크대상 문자)
// --------------------------------------------------------------------------------------------
// 사용법: str = cmm_rtrim(str);
// --------------------------------------------------------------------------------------------
function getRtrim(str) {
 while(str.substring(str.length-1,str.length) == ' ')
  str = str.substring(0, str.length-1);
 return str;
}

// 사용빈도 : 상
// 함수명: 공백문자를 제외한 문자열을 리턴하는 함수
// 설  명: 공백만을 제외한 문자열을 리턴(특수문자 등도 같이 리턴)
// 인  자: arg_str(검사대상 문자열)
// --------------------------------------------------------------------------------------------
// 사용법: cmm_str_trim('abc def');
// --------------------------------------------------------------------------------------------
function getStrTrim(arg_str) {
 var rtn_str = "";
 var i=0;
 while(arg_str.charAt(i) != "") {
  if(arg_str.charAt(i)!=' ') {
   rtn_str += arg_str.charAt(i);
  }
  i++;
 }
 return rtn_str;
}

//--------------------------------------------------------------------------------------------
// Function name : getReverse
// Description   : 주어진 문자열을 거꾸로 치환
// Parameter     : str - 치환할 문자
// Return        : 치환된 문자열
//--------------------------------------------------------------------------------------------
// Usage         : getReverse("123") => "321"
//--------------------------------------------------------------------------------------------
function getReverse(Str) {
 var ret = "";

 for (var i = 0; i < Str.length; i++)
  ret = Str.substr(i, 1) + ret;
  
  return ret;
}

//--------------------------------------------------------------------------------------------
// 함수명: 특수문자를 제거하는 함수
// 설  명: 제거하고자 하는 특수문자를 제거하여 리턴하는 함수
// 인  자: str(문자열), sep(제거하고자 하는 특수문자)
// --------------------------------------------------------------------------------------------
// 사용법: <input type="text" onBlur="cmm_remove_special_char(this.value, '-%*');">
// --------------------------------------------------------------------------------------------
function getRmSpChar(str, sep) {
 var sTmp = "";
 var sBuffer = "";
 var i, j;
 var equal=false;

 for (i=0; i < str.length; i++) {
  equal = false;
  sTmp = str.substring(i, i+1);
  for(j=0; j<sep.length;j++) {
   if(sep.charAt(j) == sTmp) {
    equal = true;
    break;
   }
  }

  if(equal == false)
   sBuffer += sTmp;
 }
 //alert(sBuffer);
 return sBuffer;
}

//---------------------------------------------------------------------------------
// Function name : isEmailCheck
// Description   : 텍스트 라인안에 값을 정규식 표현을 사용해서 메일형식(ID@도메인네임)을 검사.
//                 /(\S+)@(\S+)\.(\S+)/
//                 (\S+) : white space 즉, 공백이 아닌 하나 이상의 문자열이 존재
//                  @ : 그 뒤로 골뱅이(at)가 존재하고
//                 (\S+) : 다시 문자열이 존재
//                 \. : (.)dot
//                 (\S+) : 다시 문자열이 존재
// Parameter     : 
// Return        : 
//----------------------------------------------------------------------------------
// Usage         :  isEmailCheck(this)
//----------------------------------------------------------------------------------
function isEmailCheck(email) {
    mvalue = email ;
   
    if (mvalue.value == null || mvalue.value == "") return;
   
    if (mvalue.value.search(/(\S+)@(\S+)\.(\S+)/) == -1) {
   alert ("ID@고유도메인명 형식으로 입력하세요!!\n\n예) test@hanmail.net");
   
   mvalue.value = "";
   mvalue.focus();
   return false;
    } else {
   // alert("입력하신 메일 주소는\n\n" + mvalue.value + "\n\n입니다.");
   return false;
    }
}

//------------------------------------------------------------------
// Function name : fnBluring
// Description   :
// Parameter     :  
// Return        : 
//------------------------------------------------------------------
// Usage         :  
//------------------------------------------------------------------

function fnBluring() {
 if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG"||event.srcElement.tagName=="Onclick"||event.srcElement.tagName=="TABLE")
    document.body.focus();
}

//------------------------------------------------------------------
// Function name : fnBsControl
// Description   : 백스페이스 제어
// Parameter     :  
// Return        : 
//------------------------------------------------------------------
// Usage         :  
//------------------------------------------------------------------
function fnBsControl() {
 var d = document;
 //var sw = 0;
   
  if (window.event.keyCode==8) {
  // 등록된 객체이름을 백스페이스 방지
  //if (d.objList == null)
  //{
  //    return false;
  //}
  //else
  //{
  //    for (i=0; i<d.objList.length; i++)
  //    {
  //         if (window.event.srcElement.name == d.objList[i].name)
  //         {
  //            sw = 1;         
  //            break;      
  //         }
  //    }
  //   
  //    if (sw == 0)
  //    {
  //        return false;
  //    }
  //}
 
  // 폼객체의 종류로 백스페이스 방지
  if (window.event.srcElement.type != 'text') {
   return false;   
  }
  }
}

//------------------------------------------------------------------
// Function name : isValidDay
// Description   : 지정 년,월,일이 달력상으로 존재하는 날짜인지 검사
// Parameter     : year - 년 , month - 월 , day - 일 
// Return        : 
//------------------------------------------------------------------
// Usage         :  
//------------------------------------------------------------------
 
function isValidDay(year, month, day) {   
 var m = parseInt(month,10) - 1;
 var d = parseInt(day,10);

 var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
  end[1] = 29;
 }

 return (d >= 1 && d <= end[m]);

Posted by 1010