Fcheker (폼 체커) 입니다. > script

본문 바로가기
사이트 내 전체검색

script

Fcheker (폼 체커) 입니다.

페이지 정보

작성자 서방님 댓글 0건 조회 126회 작성일 06-10-02 12:00

본문

얼마전에 올린 것인데..
추가된 부분과 수정된 부분이 있어 다시 올립니다...

혹시라두 사용하실때는 주석을 제거 하지 마시구.. 사용해주세요.. ^^;


<SCRIPT LANGUAGE="JavaScript">
<!--


/**
* make by BlueSys(푸른공허)
* |jb0077|@|empal|.|com| 에서 |를 제거 하세요.
*
* 메시지
*/
function fncMessage() {
  this.isAlert = true;
  this.message = "";

  this.get = _fncGetMessage;
  this.alert = _fncAlertMsg;
  this.setIsAlert = _fncIsAlert;

  return this;
}

function _fncIsAlert() {
  this.isAlert = arguments[0];
}

function _fncAlertMsg() {
  if(this.isAlert) {
    alert(arguments[0]);
  }
  return this;
}

function _fncGetMessage() {
  /**
  * ==================== Rulls ====================
  * 1. Message [$n]형식은 사용할수 없습니다.
  * ===============================================
  */
  this.messages = [];
  this.messages['MSG-0001'] = "$0 입력하여 주십시오.";
  this.messages['MSG-0002'] = "$0 체크하여 주십시오.";
  this.messages['MSG-0003'] = "$0 $1 개 이상 선택 하실수 없습니다.";
  this.messages['MSG-0004'] = "$0 $1 개 이상 $2 개 미만으로 선택하여 주십시오.";
  this.messages['MSG-0005'] = "$0 선택하여 주십시오.";

  this.messages['MSG-0006'] = "$0 숫자로만 작성되어야 합니다.";
  this.messages['MSG-0007'] = "$0 영문자/숫자로만 작성되어야 합니다.";
  this.messages['MSG-0008'] = "$0 $1 의형식으로 작성되어야 합니다.";
  this.messages['MSG-0009'] = "올바른 형식의 $0 이(가) 아닙니다.";

  this.messages['MSG-0010'] = "$0 $1 자리로 작성하여야 합니다.";
  this.messages['MSG-0011'] = "$0 최소 $1 최대 $2 글자 미만으로 작성하여야 합니다.";

  this.messages['MSG-0012'] = "$0 올바른 $1 아닙니다.";
  this.messages['MSG-0013'] = "$0 $1 개 이상 선택 하실수 없습니다.";
  this.messages['MSG-0014'] = "$0 오브젝트 Length보다 큽니다.";

  this.messages['MSG-0015'] = "제한할 파일 확장자가 없습니다.";
  this.messages['MSG-0016'] = "허용할 파일 확장자가 없습니다.";
  this.messages['MSG-0017'] = "허용되지 않는 파일 입니다.";

  this.messages['MSG-0018'] = "$0 영문자로만 작성되어야 합니다.";

  this.messages['MSG-0019'] = "$0 특수문자를 사용하실수 없습니다.";
  this.messages['MSG-0020'] = "$0 $1 이외의 특수문자는 사용하실수 없습니다.";

  this.messages['MSG-0021'] = "$0 한글만 사용 가능 합니다.";
  this.messages['MSG-0022'] = "$0 동일한 문자를 $1 자 이상 사용하실수 없습니다.";

  this.messages['MSG-0023'] = "$0 연속된 문자열로 되어 있습니다.";

  this.message = this.messages[arguments[0]];

  if(arguments.length > 1) {
    for(var x=1; x<arguments.length; x++) {
      this.message = this.message.replace("$"+(x-1) , arguments[x]);
    }
  }

  return this.message;
}

var message = new fncMessage();

/**
* make by 거친마루
* 한글 조사
*/
String.prototype.hasFinalConsonant = function(str) {
  str = this != window ? this : str;
  var strTemp = str.substr(str.length-1);
  return ((strTemp.charCodeAt(0)-16)%28!=0);
}

function josa(str,tail) {
  return (str.hasFinalConsonant()) ? tail.substring(0,1) : tail.substring(1,2);
}

/**
* make by BlueSys(푸른공허)
* |jb0077|@|empal|.|com| 에서 |를 제거 하세요.
*
*
* FText
*    isNull            공백 체크
*    nullable        빈 값 허용 여부(nullable 이면 값이 없으면 통과, 있으면 체크한다.)
*        ====================================================
*        // isNull 과 nullable은 같이 사용할수 없다.
*        ====================================================
*    isNumber        숫자만 허용                (공백 허용 안함)
*    isKorean        한글만 허용                (공백 허용 안함 , 완성형만 입력가능)
*                    예) 안녕하세요 - 허용
*                        ㅋ,ㅎ,ㅇ  - 허용하지 않음
*    isKoreanNumeric    한글,숫자만 허용        (공백 허용 안함 , 완성형만 입력가능)
*    isAlphabat        영문자만 허용            (공백 허용 안함)
*    isAlphaNumeric    숫자,영문자만 허용        (공백 허용 안함)
*    isDuplication    문자의 중복 체크        (default : 3자)
*                                @arguments[0] 허용하는 중복 갯수
*
*    limitSpcChar    특수문자 제한 체크
*                                @arguments[0] 허용할 특수 문자
*
*            1. specialChar()                :: 특수 문자 입력 안됨
*            2. specialChar(",", ".", "^")    :: 작성된 특수 문자만 허용 함
*
*    isChainChar        문자의 연속성 체크        (default :: 4자 이상의 연속된 문자열 체크)
*                    예) 1234 , 9876 , abcd , 1234abvc
*
*    range            길이 체크
*                                @arguments[0] 최소 길이
*                                @arguments[1] 최대 길이
*    isMail            메일 유효성 체크
*
*    isSsn            input 폼이 1개 일 경우에만 사용 (onKeyup=fncSsnForm(this) 함수 사용)
*                    간단한 주민번호 유효성 체크 (000000-0000000 의 형식으로 입력)
*    validation()
*
*    ========================== 사용법 ===================================================
*    if(!FForm(new FText("텍스트" , "textTest")
*            .isNull().range(4,4).validation())) return;
*    ========================== 사용법 ===================================================
*
* FRadio
*    validation()    라디오의 checked 체크
*
*    ========================== 사용법 ===================================================
*    if(!FForm(new FRadio("라디오" , "radioTest")
*            .validation())) return;
*    ========================== 사용법 ===================================================
*
* FCheck
*    setMulti        멀티 여부 (default = false;)
*                                @arguments[0] true | false
*    range            멀티 일 경우 선택 갯수 지정(default = 1)
*                                @arguments[0] 선택 가능 한 갯수
*    validation()    체크 박스의 checked 체크
*
*    ========================== 사용법 ===================================================
*                                    선택 하였는지 체크, (default : 1개만 선택 가능)
*    if(!FForm(new FCheck("체크박스" , "checkboxTest")
*            .validation())) return;
*                                    선택 하였는지 체크, (default : 1개 이상 선택 가능)
*    if(!FForm(new FCheck("체크박스" , "checkboxTest")
*            .setMulti(true).validation())) return;
*                                    선택 하였는지 체크, (default : 2개만 가능)
*    if(!FForm(new FCheck("체크박스" , "checkboxTest")
*            .setMulti(true).range(2).validation())) return;
*    ========================== 사용법 ===================================================
*
* FSelect
*    validation()    셀렉트 선택 여부 체크
*
*    ========================== 사용법 ===================================================
*    if(!FForm(new FSelect("셀렉트" , "selectTest")
*            .validation())) return;
*    ========================== 사용법 ===================================================
*
* FSsn                간단한 주민 번호 유효성 체크(input 2개일 경우에만 사용)
*    validation()    2개의 input 폼에 최적화 되어 있다.
*                    Null 체크 , Number 체크 , Range 체크(default)
*
*    ========================== 사용법 ===================================================
*    if(!FForm(new FSsn("주민등록번호" , "test1" , "test2")
*            .validation())) return;
*    ========================== 사용법 ===================================================
*
* FFile
*    isNull            공백 체크
*    nullable        빈 값 허용 여부(nullable 이면 값이 없으면 통과, 있으면 체크한다.)
*        ====================================================
*        // isNull 과 nullable은 같이 사용할수 없다.
*        ====================================================
*    extention        허용하는 확장자 체크
*                                @arguments 허용할 확장자 명
*    xExtension        허용하지 않는 확장자 체크
*                                @arguments 제한할 확장자 명
*    validation()
*
*    ========================== 사용법 ===================================================
*    if(!FForm(new FFile("Files" , "fileTest")
*            .isNull().xExtension("js","html").validation())) return;
*    ========================== 사용법 ===================================================
*/

//============================================================================
//    Form Checker
//============================================================================
function FForm() {
  this.result = false;

  if(arguments[0].length > 0) {
    this.rList = arguments[0];

    for(var x=0; x<this.rList.length; x++) {
      message.alert(this.rList[x]);
      this.result = false;
      break;
    }
  }else this.result = true;

  return this.result;
}

//============================================================================
//    Text checker
//============================================================================
function FText() {

  this.cnt = 0;
  this.result = [];

  this.isFNull = false;

  this.msg = arguments[0];
  this.obj = arguments[1].getObject();

  //this.isBlockDiv = false;
  this.useDIVs                = _fncUseDivs;

  this.isNull                    = _fncIsNull;
  this.nullable                = _fncNullable;
  this.isNumber                = _fncIsNumber;
  this.isAlphaNumeric            = _fncIsAlphaNumeric;
  this.isAlphabat                = _fncIsAlphabeat;
  this.isKorean                = _fncIsKorean;
  this.isKoreanNumeric        = _fncIsKoreanNumeric
  this.limitSpcChar            = _fncSpecialChar;
  this.isChainChar            = _fncChainChar;
  this.isMail                    = _fncIsMail;
  this.isSsn                    = _fncIsSsn;
  this.range                    = _fncIsRange;

  this.isDuplication            = _fncDblString;
  this.deleteDblArray            = _fncDeleteDblArray;

  this.focus                    = fncUnValidation;

  this.validation                = _fncTextValidation;

  return this;
}

function _fncNullable() {
  this.isFNull = true;
  return this;
}

function _fncTextValidation() {
  return this.result;

}

//============================================================================
//    Radio checker
//============================================================================
function FRadio() {
  this.cnt = 0;
  this.result = [];

  this.msg = arguments[0];
  this.obj = eval("document.all."+arguments[1]);

  this.validation            = _fncRadioValidation;
}

function _fncRadioValidation() {

  this.radioCnt = 0;

  if(this.obj.length > 1) {
    for(var x=0; x<this.obj.length; x++) {
      if(this.obj[x].checked) {
        this.radioCnt++;
      }
    }

    if(this.radioCnt <= 0) {
      this.result[this.cnt++] =
        message.get("MSG-0002" , this.msg + josa(this.msg ,"을를"));
    }
  }else {
    if(!this.obj.checked) {
      this.result[this.cnt++] =
          message.get("MSG-0002" , this.msg + josa(this.msg ,"을를"));
    }
  }

  return this.result;
}

//============================================================================
//    CheckBox checker
//============================================================================
function FCheck() {
  this.isMulti = false;

  this.isRange = false;
  this.multiRange = 1;

  this.cnt = 0;
  this.result = [];

  this.msg = arguments[0];
  this.obj = eval("document.all."+arguments[1]);

  this.setMulti            = _fncSetMulti;
  this.range                = _fncSetMultiRange;

  this.validation            = _fncCheckBoxValidation;
}

function _fncSetMulti() {
  this.isMulti = arguments[0];
  return this;
}

function _fncSetMultiRange() {
  if(arguments[0] == null)
    this.multiRange = 1;
  else {
    this.multiRange = arguments[0];
  }

  this.isRange = true;
  return this;
}

function _fncCheckBoxValidation() {
  this.txtBoxCnt = 0;

  if(this.obj.length > 1) {
    for(var x=0; x<this.obj.length; x++) {
      if(this.obj[x].checked) {
        this.txtBoxCnt++;
      }
    }

    if(this.isMulti == true) {
      //선택 하지 않았다면
      if(this.txtBoxCnt <= 0) {
        this.result[this.cnt++] =
            message.get("MSG-0002" , this.msg + josa(this.msg ,"을를"));
      }else {
        if(this.isRange) {
          if(this.obj.length) {
            if(Number(this.multiRange) > this.obj.length) {
              this.result[this.cnt++] =
                  message.get("MSG-0014" , this.msg + josa(this.msg ,"은는"));
            }else if(this.txtBoxCnt > Number(this.multiRange)) {
              this.result[this.cnt++] =
                  message.get("MSG-0013" , this.msg + josa(this.msg ,"은는") , this.multiRange);
            }
          }else {
            if(this.multiRange > 1) {
              this.result[this.cnt++] =
                  message.get("MSG-0014" , this.msg + josa(this.msg ,"은는"));
            }
          }
        }
      }
    }else {
      if(this.txtBoxCnt <= 0) {
        this.result[this.cnt++] =
              message.get("MSG-0002" , this.msg + josa(this.msg ,"을를"));
      }else if(this.txtBoxCnt > 1) {
        this.result[this.cnt++] =
              message.get("MSG-0003" , this.msg + josa(this.msg ,"은는") , "1");
      }
    }
  }else {
    if(!this.obj.checked) {
      this.result[this.cnt++] =
            message.get("MSG-0002" , this.msg + josa(this.msg ,"을를"));
    }
  }

  return this.result;
}

//============================================================================
//    SelectBox checker
//============================================================================
function FSelect() {
  this.isMulti = false;

  this.cnt = 0;
  this.result = [];

  this.msg = arguments[0];
  this.obj = arguments[1].getObject();

  this.focus                    = fncUnValidation;

  this.validation                = _fncSelectValidation;
}

function _fncSelectValidation() {
  if(this.obj[this.obj.selectedIndex].value.length <= 0) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0005" , this.msg + josa(this.msg ,"을를"));
  }

  return this.result;
}

//============================================================================
//    Check Utils
//============================================================================
/**
* Null checker
*/
function _fncIsNull() {

  if (this.obj.value == null
      || this.obj.value.replace(/ /gi,"") == "") {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0001" , this.msg + josa(this.msg ,"을를"));
  }
  return this;
}

/**
* Number checker
*/
function _fncIsNumber() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  if(isNaN(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0006" , this.msg + josa(this.msg ,"은는"));
  }

  return this;
}

/**
* Korean, Number checker
*/
function _fncIsKoreanNumeric() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.reg = /^[가-힣0-9]*$/;
  if(!this.reg.test(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0021" , this.msg + josa(this.msg ,"은는"));
  }
  return this;
}

/**
* Korean checker
*/
function _fncIsKorean() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.reg = /^[가-힣]*$/;
  if(!this.reg.test(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0021" , this.msg + josa(this.msg ,"은는"));
  }
  return this;
}

/**
* Number, English checker
*/
function _fncIsAlphaNumeric() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.reg = /^[a-zA-Z0-9]+$/;
  if(!this.reg.test(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0007" , this.msg + josa(this.msg ,"은는"));
  }

  return this;
}

/**
* English checker
*/
function _fncIsAlphabeat() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.reg = /^[a-zA-Z]+$/;
  if(!this.reg.test(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] =
          message.get("MSG-0018" , this.msg + josa(this.msg ,"은는"));
  }

  return this;
}

/**
* Ssn checker(주민 등록 번호)
*/
function _fncIsSsn() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  //000000-0000000 의 형식으로 입력 받아야 한다.
  if (isNaN(this.obj.value.replace(/-|s+/g, ""))) {
    this.result[this.cnt++] =
          message.get("MSG-0008" , this.msg + josa(this.msg ,"은는") , "000000-0000000");
    this.focus();
  }

  this.year = this.obj.value.substring(0, 2);
  this.month = this.obj.value.substring(2, 4);
  this.day = this.obj.value.substring(4, 6);
  this.sex = this.obj.value.substring(13, 14);

  if ((this.obj.value.length != 14 ) ||
        (this.year < 25 || this.month < 1 || this.month > 12 || this.day < 1)) {

    this.result[this.cnt++] = message.get("MSG-0009" , this.msg + josa(this.msg ,"이가"));
    this.focus();
  }

  if ((this.sex != 1 && this.sex !=2 )) {
    this.result[this.cnt++] = message.get("MSG-0009" , this.msg + josa(this.msg ,"이가"));
    this.focus();
  }
  return this;
}

/**
* Range checker
*/
function _fncIsRange() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  var total = 0;
  for(var i=0;i<this.obj.value.length; i++) {
    var a = this.obj.value.charAt(i);
    if(escape(a).length >= 6) {
      total = total + 2;
    }else {
      total = total + 1;
    }
  }

  if(!(total >= arguments[0] && total <= arguments[1])) {
    this.focus();
    if(arguments[0] == arguments[1]) {
      this.result[this.cnt++] =
          message.get("MSG-0010" , this.msg + josa(this.msg ,"은는") , arguments[0]);
    }else {
      this.result[this.cnt++] =
          message.get("MSG-0011" , this.msg + josa(this.msg ,"은는") , arguments[0] , arguments[1]);
    }
  }
  return this;
}

/**
* Mail checker
*/
function _fncIsMail() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }
  this.reg = new RegExp("(^[_0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)*$)");
  if(!this.reg.test(this.obj.value)) {
    this.focus();
    this.result[this.cnt++] = message.get("MSG-0009" , this.msg + josa(this.msg ,"이가"));
  }

  return this;
}


/**
* 중복 문자열 checker
*/
function _fncDblString() {

  this.dobRst = [];
  this.temp = [];

  this.dobCnt = 0;
  this.allowCnt = arguments[0]==null?3:arguments[0];

  for(var x=0; x<this.obj.value.length; x++)     {
    var cnt = 0;
    for(var i=0; i<this.obj.value.length; i++) {
      if(this.obj.value.charAt(x) == this.obj.value.charAt(i)) {
        cnt++;
      }
    }

    this.temp[this.dobCnt] = [];
    this.temp[this.dobCnt][0] = this.obj.value.charAt(x);
    this.temp[this.dobCnt][1] = cnt;
    this.dobCnt++;
  }

  this.dobRst = this.deleteDblArray(this.temp);

  for(var x=0; x<this.dobRst.length; x++) {
    if(Number(this.dobRst[x][1]) > Number(this.allowCnt)) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0022" , this.msg + josa(this.msg ,"은는") , this.allowCnt);
      break;
    }
  }
  return this;
}

function _fncDeleteDblArray() {
  if(arguments.length > 0) {
    for(var x=0; x<arguments[0].length; x++) {
    var checkDbl = 0;
      for(var i=0; i<arguments[0].length; i++) {
        if(arguments[0][x][0] != arguments[0][i][0]) {
          continue;
        }else {
          checkDbl++;
          if(checkDbl > 1) {
            spliced = arguments[0].splice(i , 1);
          }
        }
      }
    }
  }
  return arguments[0];
}

/**
* 문자의 연속성 체크
* 1234 , abcd , 9876
*/
function _fncChainChar() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.chainCnt = 4;

  for(var x=0; x<this.obj.value.length; x++) {

    this.args = this.obj.value.substring(x,(x+1));
    this.asciiCode = this.obj.value.charCodeAt(x);

    this.inc_chainStrAscii =
      String.fromCharCode(this.asciiCode, this.asciiCode+1, this.asciiCode+2, this.asciiCode+3);
    this.dec_chainStrAscii =
      String.fromCharCode(this.asciiCode, this.asciiCode-1, this.asciiCode-2, this.asciiCode-3);
/*
    if(this.args >= this.chainCnt || this.asciiCode >= this.obj.value.charCodeAt(1)) {
      this.dec_chainStrAscii =
        String.fromCharCode(this.asciiCode, this.asciiCode-1, this.asciiCode-2, this.asciiCode-3);
    }
*/
    if ((this.obj.value.substring(x, (x+this.chainCnt)) == this.inc_chainStrAscii)
          || this.obj.value.substring(x, (x-this.chainCnt)) == this.dec_chainStrAscii) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0023" , this.msg + josa(this.msg ,"이가"));
      break;
    }
  }

  return this;
}

/**
* 특수문자 체크
*/
function _fncSpecialChar() {

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this;
    }
  }

  this.a_char = "";
  if(arguments[0] != null) {//
    this.sp_char = 0;
    this.ex_cnt = 0;
    this.extention = [];

    //예외를 제외한 모든 특수 문자 제한
    for(var x=0; x<arguments.length; x++) {
      this.a_char += "[" + arguments[x] + "] ";
    }

    for(var x=0; x<this.obj.value.length; x++) {
      var ret = this.obj.value.charCodeAt(x);
      if((ret >= 33 && ret <= 47) || (ret >= 58 && ret <= 64) ||
          (ret >= 91 && ret <= 96) || (ret >= 123 && ret <= 126)) {
        this.extention[this.ex_cnt++] = this.obj.value.charAt(x);
      }
    }

    if(this.extention.length > 0) {
      for(var x=0; x<this.extention.length; x++) {
        for(var i=0; i<arguments.length; i++) {
          if(this.extention[x] == arguments[i]) this.sp_char++;
        }
      }
    }

    if(this.sp_char != this.extention.length) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0020" , this.msg + josa(this.msg ,"은는") , this.a_char);
    }
  }else {//특수 문자 혀용 하지 않음
    this.reg = /^[a-zA-Z0-9ㄱ-힣]+$/;

    if(!this.reg.test(this.obj.value)) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0019" , this.msg + josa(this.msg ,"은는"));
    }
  }
  return this;
}


//============================================================================
//    Ssn checker(주민등록 번호)
//
//        2개의 input 폼에 최적화 되어 있다.
//        null 체크 , 숫자 체크 , length 체크(default)
//============================================================================
function FSsn() {
  this.obj;

  this.cnt = 0;
  this.tmp = "";
  this.result = [];

  this.msg = arguments[0];
  this.ssn = [];
  if(arguments.length <= 0) return this;
  else {
    var ocnt = 0;
    for(var x=1; x<arguments.length; x++) {
      this.ssn[ocnt++] = arguments[x];
    }
  }

  this.focus                    = fncUnValidation;
  this.validation                = _fncSsnValidation;

  return this;
}

function _fncSsnValidation() {
  this.valid = false;

  for(var x=0; x<this.ssn.length; x++) {

    this.obj = this.ssn[x].getObject();
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      this.result[this.cnt++] =
          message.get("MSG-0001" , this.msg + josa(this.msg ,"을를"));
      this.focus();
      break;

    }else if(isNaN(this.obj.value)) {
      this.result[this.cnt++] =
          message.get("MSG-0006" , this.msg + josa(this.msg ,"은는"));
      this.focus();
      break;

    }else {
      if(x == 0 && this.obj.value.length != 6) {
        this.result[this.cnt++] =
            message.get("MSG-0010" , this.msg + josa(this.msg ,"은는") , 6);
        this.focus();
        break;

      }else if(x == 1 && this.obj.value.length != 7) {
        this.result[this.cnt++] =
            message.get("MSG-0010" , this.msg + josa(this.msg ,"은는") , 7);
        this.focus();
        break;
      }
      this.tmp += (this.obj.value).trim();
      this.valid = true;
    }
  }

  if(this.valid) {
    this.year = this.tmp.substring(0, 2);
    this.month = this.tmp.substring(2, 4);
    this.day = this.tmp.substring(4, 6);
    this.sex = this.tmp.substring(12, 13);

    if ((this.tmp.length != 13 )
          || (this.year < 25 || this.month < 1
          || this.month > 12 || this.day < 1)) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0009" , this.msg + josa(this.msg ,"이가"));
    }

    if ((this.sex != 1 && this.sex != 2)) {
      this.focus();
      this.result[this.cnt++] =
          message.get("MSG-0009" , this.msg + josa(this.msg ,"이가"));
    }
  }

  return this.result;
}

//============================================================================
//    File checker
//============================================================================
function FFile() {
  this.cnt = 0;
  this.result = [];
  this.exFiles = [];

  this.isFNull = false;

  this.allow = false;
  this.xAllow = false;

  this.msg = arguments[0];
  this.obj = arguments[1].getObject();

  this.getFileEx                = _fncFileExtention;

  this.isNull                    = _fncIsNull;
  this.nullable                = _fncNullable;

  this.extention                = _fncExtention;
  this.xExtension                = _fncXExtention;
  this.validation                = _fncFileValidation;

  this.focus                    = fncUnValidation;

  return this;
}

function _fncExtention() {
  if(arguments.length <= 0) {
    this.result[this.cnt++] = message.get("MSG-0016");
    return this;
  }

  this.allow = true;

  this.ocnt = 0;
  for(var x=0; x<arguments.length; x++) {
    this.exFiles[this.ocnt] = arguments[x];
    this.ocnt++;
  }

  return this;
}

function _fncXExtention() {
  if(arguments.length <= 0) {
    this.result[this.cnt++] = message.get("MSG-0015");
    return this;
  }
  this.xAllow = true;

  this.ocnt = 0;
  for(var x=0; x<arguments.length; x++) {
    this.exFiles[this.ocnt] = arguments[x];
    this.ocnt++;

  }
  return this;
}

function _fncFileValidation() {
  this.same = false;

  if(this.isFNull) {
    if (this.obj.value == null
        || this.obj.value.replace(/ /gi,"") == "") {
      return this.result;
    }
  }

  if(this.exFiles.length <= 0)
    return this.result;

  this.ex = this.getFileEx(this.obj.value);

  if(this.allow) {
    for(var x=0; x<this.exFiles.length; x++) {
      if(this.ex == this.exFiles[x]) {
        this.same = true
        break;
      }
    }
    if(!this.same) {
      this.focus();
      this.result[this.cnt++] = message.get("MSG-0017");
    }
  }

  if(this.xAllow) {
    for(var x=0; x<this.exFiles.length; x++) {
      if(this.ex == this.exFiles[x]) {
        this.same = true
        break;
      }
    }
    if(this.same) {
      this.focus();
      this.result[this.cnt++] = message.get("MSG-0017");
    }
  }
  return this.result;
}

function _fncFileExtention() {
  this.index = arguments[0].lastIndexOf(".");
  return arguments[0].substring(this.index+1);
}

//============================================================================
//    Focus | Selected
//============================================================================
function fncUnValidation() {

  if(this.obj.type != "hidden") {
    this.obj.focus();
    if(this.obj.type == "text" || this.obj.type == "textarea" ||
        this.obj.type == "password" || this.obj.type == "file")
      this.obj.select();
  }

  return this;
}

/**
* make by BlueSys(푸른공허)
* |jb0077|@|empal|.|com| 에서 |를 제거 하세요.
* Object
*
* 사용법 :
* "input".getObject().innerHTML = "hi~";
* @result : object
*/
String.prototype.getObject = function() {
  this.obj = "";
  try {
    if(this == null) {
      this.obj = "";
    }else this.obj = this;
  }catch(e) {
    this.obj = "";
  }

  try {
    if(document.getElementById(this.obj)) {
      return document.getElementById(this.obj);
    }else {
      throw "Object가 필요합니다. [ " + this.obj + " ]";
    }
  }catch(e) {
    alert("Error :: " + e);
    return false;
  }
}

// 좌우 공백없애는 함수
String.prototype.trim = function () {
  return this.replace(/(^s*)|(s*$)/g, "");
}

/**
* 주민등록 번호 작성시
* <input type="text" onKeyUp="fncSsnForm(this);">
*/
function fncSsnForm() {
  if(arguments[0].value.length == 6) {
    arguments[0].value = arguments[0].value + "-";
  }
}
//-->
</SCRIPT>


출처 : PHP스쿨

댓글목록

등록된 댓글이 없습니다.

Total 846건 48 페이지
게시물 검색

회원로그인

접속자집계

오늘
23
어제
302
최대
1,347
전체
155,084
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.