JS 체크

인터넷관련 2008. 2. 20. 10:17

/*
  - 숫자 체크의 예제입니다.
  spchar = /^[0-9]{3}$/; // 0에서 9까지이 숫자를 사용하여 3자리를 입력받는다는 말
  if (input.value.search(spchar) == -1) {
    alert(input);
    input.focus();
    return false;
  }
/*
/*-----------------------------------------------------------------------------------------------------------------
1. 입력 체크
------------------------------------------------------------------------------------------------------------------*/
function str_check(input) {
  if(!input.value) {
    input.focus();
    return false;
  }
  else return true;
}
/*-----------------------------------------------------------------------------------------------------------------
2. 쓴값 전달해주기
------------------------------------------------------------------------------------------------------------------*/
function auto_write(input, input2) { 
      input2.value = input.value;
}

/*-----------------------------------------------------------------------------------------------------------------
3. 이메일 체크하기
------------------------------------------------------------------------------------------------------------------*/
function email_check(input, input2) {
    input.value = input.value.toLowerCase();
    spchar = /^[a-z0-9\-_\.]+[@]{1}[a-z0-9\-]+[\.]{1}[a-z]+/;
    if(input.value.search(spchar) == -1) {
        alert(input2);
        input.focus();
        return false;
    }
    else return true;
}

/*-----------------------------------------------------------------------------------------------------------------
3-1. 이메일 체크하기
------------------------------------------------------------------------------------------------------------------*/
function email2_check(input, input2) {
   if(input.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.co.kr)|(\.kr)|(\.or.kr)|(\.pe.kr)|(\.go.kr)|(\.edu)|(\.mil)|(\.gov)|(\.ac.kr)|(\.re.kr)|(\.org)|(\..{0,0}))$)\b/gi) ) {
      return true;
   }
   else {
      alert(input2);
      input.focus();
      return false;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
3-2. 이메일 체크하기
------------------------------------------------------------------------------------------------------------------*/
function email3_check(input, input2) {
 if ((input.value == '' || input.value.indexOf ('@', 0) == -1) || input.value.indexOf('.') == -1) {
  alert(input2);
  input.focus();
  return false;
 }
 else return true
}


/*-----------------------------------------------------------------------------------------------------------------
4. 홈페이지주소 체크하기
------------------------------------------------------------------------------------------------------------------*/
function homepg(input, input2) {
 if ((input.value == '' || input.value.indexOf ('http://', 0) == -1) || input.value.indexOf('.') == -1) {
  alert(input2);
  input.focus();
  return false;
 }
 else return true
}

/*-----------------------------------------------------------------------------------------------------------------
4-1. 홈페이지주소 체크
------------------------------------------------------------------------------------------------------------------*/
function homepg2(input, input2) {
   if(input.value.match(/\b(((\.com)|(\.net)|(\.co.kr)|(\.or.kr)|(\.pe.kr)|(\.go.kr)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{0,0}) )$)\b/gi) ) {
      return true;
   }
   else {
      alert(input2)
      input.focus();
      return false;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
4-2. 도메인명 체크
------------------------------------------------------------------------------------------------------------------*/
function domain_check(input, input2, input3) {
   var i, inputname;
   blank(input, input2);
   inputname = input.value.toLowerCase();
   for (i=0;i      if((inputname.charAt(i) >= ' ' && inputname.charAt(i) <= '+') || (inputname.charAt(i) == '/') || (inputname.charAt(i) >= ':' && inputname.charAt(i) <= '@') || (inputname.charAt(i) >= '[' && inputname.charAt(i) <= '`') || (inputname.charAt(i) >= '{' && inputname.charAt(i) <= '~')) {
         alert(input3);
         input.focus();
         return false;
      }

      else if((i == 0 && inputname.charAt(i) == '-') || (i == (inputname.length-1) && inputname.charAt(i) == '-')) {
         alert(input3);
         input.focus();
         return false;
      }

      else return true;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
5. 공백만 입력되었는지 체크
------------------------------------------------------------------------------------------------------------------*/
function blank(input, input2) {
    var error_c=0, i, val;
    for(i=0;i      val = input.value.charAt(i);
      if(val == ' ') error_c++;
    }
    if(error_c != input.value.length) return true;
    else {
      input.focus();
      alert(input2);
      input.value = '';
      return false;
    }
  }

/*-----------------------------------------------------------------------------------------------------------------
6. 입력의 최소자리수에서 최대자리수까지의 범위지정
------------------------------------------------------------------------------------------------------------------*/
function num_posi(num_min, num_max, input, input2, input3) {
   if(input.value.length == 0) { // 값이 입력되지 않았을때
      alert(input2);
      input.focus();
      return false;
   }
   else if(input.value.length < num_min || input.value.length > num_max) { // 자리수가 맞지 않을때
      alert(input3);
      input.focus();
      return false;
   }
   else return true;
}

/*-----------------------------------------------------------------------------------------------------------------
7. 포커스 자동 이동
------------------------------------------------------------------------------------------------------------------*/
function auto_move(input, move_name, num) {
   if(input.value.length == num) {
      move_name.focus();
   }
}

/*-----------------------------------------------------------------------------------------------------------------
8. 숫자 체크 및 자리수 체크 - 전화번호 입력에서 자주 쓰임, 입력칸이 세개일경우
------------------------------------------------------------------------------------------------------------------*/
function phone(num_min, num_max, input, input2, input3) { 
   var error_c=0, i, val;
   if(input.value.length <= num_max && input.value.length >= num_min) { 
      for(i=0;i         val = input.value.charAt(i);
         if(!(val>=0 && val<=9)) error_c++;
      }
      if(error_c) { // 숫자가 아닐때
         input.value = '';
         alert(input2);
         input.focus();
         return false;
      }
      else return true;
   }
   else { // 자리수가 올바르지 않을때
      input.value = '';
      alert(input3);
      input.focus();
      return false;
   }
}


/*-----------------------------------------------------------------------------------------------------------------
8-1. 전화번호 체크(숫자 및 하이픈 체크) - 입력칸이 한개일경우
------------------------------------------------------------------------------------------------------------------*/
function phone2(input, input2, input3, input4) {
   var nu_c1=0, nu_c2=0, nu_c3=0, ch_c=0, i, val;
   for(i=0;i      val = input.value.charAt(i);
      if(val>=0 && val<=9 && ch_c==0) nu_c1++;
      if(val>=0 && val<=9 && ch_c==1) nu_c2++;
      if(val>=0 && val<=9 && ch_c==2) nu_c3++;
      if(val=='-') ch_c++;
   }
   if(nu_c1 < 2 || nu_c1 > 3) {
       alert(input2);
       input.focus();
       return false;      // 지역번호자리수가 2자리 또는 3자리가 아닐경우
   }
   else if(nu_c2 < 3 || nu_c2 > 4) {
       alert(input3);
       input.focus();
       return false; // 국번자리수가 3자리 또는 4자리가 아닐경우
   }
   else if(nu_c3 != 4) {
       alert(input4);
       input.focus();
       return false;             // 번호자리수가 4자리가 아닐경우
   }
   else if(ch_c != 2) {
       alert('입력방식이 잘못되었습니다. 하이픈(-)을 사용하여 공백없이 입력해 주세요.');
       input.focus();
       return false;              // 하이픈이 두개가 들어가지 않았을경우
   }
   else return true;
}


/*-----------------------------------------------------------------------------------------------------------------
9. 영문 및 숫자만 입력 가능
------------------------------------------------------------------------------------------------------------------*/
function english(input, input2) {
   var error_c=0, i, val;
   for(i=0;i      val = input.value.charAt(i);
      if(!((val>=0 && val<=9) || (val>='a' && val<='z') || (val>='A' && val<='Z'))) error_c++;
   }
   if(!error_c) return true;
   else {
      alert(input2);
      input.value = '';
      input.focus();
      return false;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
10. 아이디 전용 체크
------------------------------------------------------------------------------------------------------------------*/
//if(!id_check(form.id, '아이디를 입력해 주십시오.', '아이디의 첫자는 반드시 영문으로 입력해 주십시오.', '아이디는 반드시 영문과 숫자로 입력해 주십시오.')) return false;
//if(!num_posi(4, 10, form.id, '', '아이디의 길이가 너무 짧거나 또는 너무 깁니다. (최고 10byte, 최소 4byte)')) return false;

function id_check(input, input2, input3, input4) {
   var error_c=0, i, val, firth_c=0;
   for(i=0;i      val = input.value.charAt(i);
      if(i==0 && !(val>='a' && val<='z') || (val>='A' && val<='Z')) firth_c++;  // 아이디의 첫자는 반드시 영문임
      if(!((val>=0 && val<=9) || (val>='a' && val<='z') || (val>='A' && val<='Z'))) error_c++;
   }
   if(!input.value.length) {
       alert(input2);
       input.focus();
       return false;
   }
   else if(error_c || firth_c) {
      input.value = '';
      input.focus();
      if(firth_c) alert(input3);
      else alert(input4);
      return false;
   }
   else return true;
}
/*-----------------------------------------------------------------------------------------------------------------
11. 회원가입시 체크하는 아이디
------------------------------------------------------------------------------------------------------------------*/
function id2_check(input, input2) {
    input.value = input.value.toLowerCase();
    spchar = /^[a-z]+[\-\.]*[a-z0-9]+$/;
    if(input.value.search(spchar) == -1) {
        input.value = '';
        alert(input2);
        input.focus();
        return false;
    }
    else return true;
}
/*-----------------------------------------------------------------------------------------------------------------
12. 숫자만 체크
------------------------------------------------------------------------------------------------------------------*/
function number(input, input2) {
   var error_c=0, i, val;
   for(i=0;i      val = input.value.charAt(i);
      if(!(val>=0 && val<=9)) error_c++;
   }
   if(error_c == 0) return true;
   else {
      alert(input2);
      input.value = '';
      input.focus();
      return false;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
13. 한글만 입력 가능한 함수
------------------------------------------------------------------------------------------------------------------*/
function hangle(input, input2, input3) {    // 한글 입력 체크
   var i, j=0;
   for(i=0;i      val = escape(input.value.charAt(i)).length;
      if(val != 6) j++;
   }
   if(j) {
      alert(input2);
      input.value = '';
      input.focus();
      return false;
   }
   else if(!input.value.length) {
       alert(input3);
       input.focus();
       return false;
   }
   else return true;
}

/*-----------------------------------------------------------------------------------------------------------------
14. 문자안의 공백 체크
------------------------------------------------------------------------------------------------------------------*/
function space(input, input2) {
   var error_c=0, i, val;
   for(i=0;i      val = input.value.charAt(i);
      if(val == ' ') error_c++;
   }
   if(error_c == 0) return true;
   else {
      alert(input2);
      input.value = '';
      input.focus();
      return false;
   }
}

/*-----------------------------------------------------------------------------------------------------------------
15 입력폼의 바이트 체크함수 - 한글을 2바이트로 인식하게 한다.
------------------------------------------------------------------------------------------------------------------*/
function numbyte(input) {
   var i, j=0;
   for(i=0;i      val = escape(input.charAt(i)).length;
      if(val == 6) j++;
      j++;
  }
  return j;    // 바이트값을 넘겨준다.
}

/*-----------------------------------------------------------------------------------------------------------------
16. 비밀번호 체크(최소값과 최대입력값도 동시에 체크)
------------------------------------------------------------------------------------------------------------------*/
function passwd(num_min, num_max, p1, p2, input, input2) {  // 비밀번호 체크
 
    if(p1.value.length < num_min || p1.value.length > num_max) { // 비밀번호 자리수오바 검사
  alert(input);
  p1.focus();
  return false;
 }
 else if(p2.value.length < num_min || p2.value.length > num_max) { // 비밀번호 자리수오바 검사
  alert(input);
  p2.focus();
  return false;
 }
 else if(p1.value != p2.value) { // 일치검사
  alert(input2);
  p1.value = '';
  p2.value = '';
  p1.focus();
  return false;
 }
 else return true
}

/*-----------------------------------------------------------------------------------------------------------------
17. 셀렉트 값이 선택되었는지 체크(보통 젤 윗배열값이 기본값으로 잡히는것을 감안함)
------------------------------------------------------------------------------------------------------------------*/
function select(input, input2) {
   if(input[0].selected == true) {
       alert(input2);
       return false;
   }
   else return true;
}

/*-----------------------------------------------------------------------------------------------------------------
18. 우편번호 찾기
------------------------------------------------------------------------------------------------------------------*/
function Zip_Search(num) { // 주소 검색
  var window_left = (screen.width-640)/2;
  var window_top = (screen.height-480)/2;
  window.open('http://www.dioweb.co.kr/zipcode/address.php?num=' + num, 'address', 'width=400, height=300, status=no, scrollbars=yes, top=' + window_top + ',left=' + window_left + '');
}

/*-----------------------------------------------------------------------------------------------------------------
18-1. 우편번호값이 입력되어 있지 않을때 작동
------------------------------------------------------------------------------------------------------------------*/
function add_check(input, num, input2, input3) {
   if(!input[num].value)  {
       Zip_Search(num);
       return false;
   }
   else if(!input2[num].value) {
        alert(input3);
        input2[num].focus();
        return false;
   }
   else return true;
}
/*-----------------------------------------------------------------------------------------------------------------
19. 주민등록번호 체크
------------------------------------------------------------------------------------------------------------------*/
function jumin(input, input2) {  // 주민등록번호 체크
   var left_j = input.value;
   var right_j = input2.value;

   if(input.value.length != 6) {
      alert('주민등록번호를 정확히 입력하세요.');
      input.focus();
      return false;
   }

   if(right_j.length != 7) {
      alert('주민등록번호를 정확히 입력하세요.');
      input2.focus();
      return false;
   }

   var i2=0;
   for(var i=0;i      var temp = left_j.substring(i,i+1);
      if(temp<0 || temp>9)  i2++;
   }


   if((left_j == '') || (i2 != 0)) {
      alert('주민등록번호가 잘못 입력되었습니다.');
      j_left.focus();
      return false;
   }

   var i3=0;
   for(var i=0;i      var temp = right_j.substring(i,i+1);
      if (temp<0 || temp>9) i3++;
   }

   if((right_j == '') || (i3 != 0)) {
      alert('주민등록번호가 잘못 입력되었습니다.');
      input2.focus();
      return false;
  }

   var l1=left_j.substring(0,1);
   var l2=left_j.substring(1,2);
   var l3=left_j.substring(2,3);
   var l4=left_j.substring(3,4);
   var l5=left_j.substring(4,5);
   var l6=left_j.substring(5,6);
   var hap=l1*2+l2*3+l3*4+l4*5+l5*6+l6*7;
   var r1=right_j.substring(0,1);
   var r2=right_j.substring(1,2);
   var r3=right_j.substring(2,3);
   var r4=right_j.substring(3,4);
   var r5=right_j.substring(4,5);
   var r6=right_j.substring(5,6);
   var r7=right_j.substring(6,7);
   hap=hap+r1*8+r2*9+r3*2+r4*3+r5*4+r6*5;
   hap=hap%11;
   hap=11-hap;
   hap=hap%10;

   if(hap != r7) {
      alert('주민등록번호가 잘못 입력되었습니다.');
      input2.focus();
      return false;
   }

return true;
}

/*-----------------------------------------------------------------------------------------------------------------
20. 숫자포맷 - ex) number_format('1000000','4','-') => 출력: 100-0000
------------------------------------------------------------------------------------------------------------------*/
function number_format(input, input2, input3) {
  var i, val='';
  var len = input.value.length; // 원래 값의 길이
  var top = (len % input2);    // 컴마찍힐 이전의 길이
  if(top==0) top=input2;

  var topnum = input.value.substring(0,top); // 컴마찍힐 이전의 값
  var midnum = input.value.substring(top);    // 컴마가 시작될 이후의 값

  for(i=0;i    if(i % input2 == 0) val = val + input3;
    val = val + midnum.charAt(i);
  }
  alert(topnum + val);
}

/*-----------------------------------------------------------------------------------------------------------------
21. 사업자등록번호 체크
------------------------------------------------------------------------------------------------------------------*/
function compnum(input1, input2, input3) {
 if (input.length != 2 || input2.length !=3 || input3.length !=5)         {
  alert('사업자등록번호가 잘못되었습니다.');
  return false;
 }
        
 Sum = 0;
 Sum += parseInt(input.substring(0,1));
 Sum += parseInt(input.substring(1,2)) * 3 % 10;

 Sum += parseInt(input2.substring(0,1)) * 7 % 10;
 Sum += parseInt(input2.substring(1,2)) * 1 % 10;
 Sum += parseInt(input2.substring(2,3)) * 3 % 10;

 Sum += parseInt(input3.substring(0,1)) * 7 % 10;
 Sum += parseInt(input3.substring(1,2)) * 1 % 10;
 Sum += parseInt(input3.substring(2,3)) * 3 % 10;
 Sum += Math.floor(parseInt(input3.substring(3,4)) * 5 / 10);
 Sum += parseInt(input3.substring(3,4)) * 5 % 10;
 Sum += parseInt(input3.substring(4,5));
        
 if(Sum % 10 != 0) {
  alert('사업자등록번호가 잘못되었습니다.');
  return false;
 }
 return true;
}

/*-----------------------------------------------------------------------------------------------------------------
22. 키입력무시(숫자만됨)
------------------------------------------------------------------------------------------------------------------*/
// 입력방법: onKeypress = 'return keyCheck(event)'
var n4=(document.layers)?true:false;
var e4=(document.all)?true:false;
function keyCheck(e) {
 
 if(n4) var keyValue = e.which
 else if(e4) var keyValue = event.keyCode

 if ( ((keyValue >= 48) && (keyValue <= 57)) || keyValue == 8) return true;
 else return false
}

/*-----------------------------------------------------------------------------------------------------------------
23. 질문던지기(확인, 취소)
------------------------------------------------------------------------------------------------------------------*/
function warring(input, input2, input3, input4, input5) {
 if (confirm!(input)) { // 질문
  window.open(input2, input3, 'width='+input4+', height='+input5+', marginwidth=0, marginheight=0, resizable=0, scrollbars=1, status=1');
  return;
 }
}

/*-----------------------------------------------------------------------------------------------------------------
24. 새창 띄우기
------------------------------------------------------------------------------------------------------------------*/
function Openwin(site, sub, size1, size2) { // 주소 검색
  var window_left = (screen.width-640)/2;
  var window_top = (screen.height-480)/2;
  window.open(site, sub, 'width=' +size1+',height='+size2+',status=no, scrollbars=no, top=' + window_top + ',left=' + window_left + '');
}

/*-----------------------------------------------------------------------------------------------------------------
25. 도메인 새창 띄우기
------------------------------------------------------------------------------------------------------------------*/
function OpenDomain(input1, input2) { // 주소 검색
        var site = 'Domain_insert.php?domain_name=' + input1 + '&end_domain=' + input2;
  var window_left = (screen.width-640)/2;
  var window_top = (screen.height-480)/2;
  window.open(site, 'domain', 'width=200,height=200,status=no, scrollbars=no, top=' + window_top + ',left=' + window_left + '');
}

Posted by 알 수 없는 사용자
,