updated_at: 2024-12-15 06:34

다양한 Type 확인(영어대소문자, 숫자, 문자+숫자)

정규식 없이 사용하는 방법

미리 타입을 정해 놓고 확인

var NUM = "0123456789"; 
var SALPHA = "abcdefghijklmnopqrstuvwxyz";
var ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"+SALPHA;
var COMMA = ",";
var NUMALPHA = new RegExp('[^a-zA-Z0-9]'); //영문자와 숫자 책크

function TypeCheck (s, spc) {
  var i;
  for(i=0; i< s.length; i++) {
    if (spc.indexOf(s.substring(i, i+1)) < 0) {
      return false;
     }
  }        
  return true;
}
if (!TypeCheck('11234567a', NUM)) {
  return false;
}

if (!TypeCheck(f.id.value, ALPHA+NUM)) {
  return false;
}

숫자(정수) 체크

function IsIntChk(strTmp){
  var len, i, imsi;
  strTmp = "" + strTmp;
  len = strTmp.length;
  for(i=0; i<len; i++){
    imsi = strTmp.charAt(i);
    if(imsi<"0" || imsi>"9"){
      return false;
    }
  }
  return true;
}

정규식을 사용한 패턴 채크

function chkPatten(str, patten)
{ 
  var regNum =/^[0-9]+$/; 
  var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; 
  var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+.[a-zA-Z]+$/; 
  var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/; 
  var regAlpha =/^[a-zA-Z]+$/; 
  var regHost =/^[a-zA-Z-]+$/; 
  var regHangul =/[가-힣]/; 
  var regHangulEng =/[가-힣a-zA-Z]/; 
  var regHangulOnly =/^[가-힣]*$/; 
  var regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,15}$/; 
  var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; 

  patten = eval(patten); 
  if(!patten.test(str)){ 
      return false; 
  } 
  return true; 
} 
chkPatten('12345a', 'regNum')

key event를 활용한 체크

onkeydown='func();' 를 활용한 유효성 체크

숫자 체크

function onlyNumber() {
  if((event.keyCode<48)||(event.keyCode>57)){
    event.returnValue=false; 
  }
}

영문자 체크

function onlyAlpha(kcode) { 
  if((event.keyCode<65)||(event.keyCode>90))
  if((event.keyCode<97)||(event.keyCode>122)){
    event.returnValue=false;
  }
} 

enter 체크

function enter(field) {
  if (event.keyCode == 13) {
    return false;
  } else {
    return true;
  }
}

전체 form을 자동으로 체크

  • html
<form onsubmit="return validator(this)">
	<input type="text" name="NAME" checkenable msg="이름을 입력하세요">
	<input type="password" name="PASSWD" value="" checkenable msg="비밀번호를 입력하세요">
	<button type="submit" class="btn btn-default">저장</button>
</form>
  • js
function validator(f){
	if(autoCheckForm(f)){
		return true;
  }else return false;
}

function autoCheckForm(f)
{ 
  

  var i,currEl,currMsg;

  for(i = 0; i < f.elements.length; i++){ 
    currEl = f.elements[i]; 
    //필수 항목을 체크한다.  
    if (currEl.getAttribute("checkenable")) { 
      currMsg = currEl.getAttribute("msg");
      var type = currEl.type.toLowerCase();
      switch(type) {
        case 'text':
        case 'password':
        case 'textarea':
        case 'select':
          if(!chkText(currEl)) {
            alert(currMsg);
            return false;
          }
          break;
        case 'checkbox':
          if(!chkCheckbox(f, currEl)) {
            alert(currMsg);
            return false;
          }
          break;
        case 'radio':
          if(!chkRadio(f, currEl)) {
            alert(currMsg);
            return false;
          }
          break;
      }
    }
  }

  return true;
}  


function chkText(field)
{ 
  if(field.value.trim().length < 1){ 
    field.focus(); 
    return false; 
  } 
  return true; 
}

function chkCheckbox(form, field)
{
  fieldname = eval(form.name+'.'+field.id);
  if (fieldname.length == undefined) {//배열이 아니라 하나의 단일값 존재
    fieldname.length = 1;
    fieldname[0] = fieldname;
  }
  for( i = 0, nChecked = 0; i < fieldname.length; i++) if( fieldname[i].checked) nChecked++;
  if(!nChecked){
    field.focus(); 
    return false; 
  }
  return true; 
}

function chkRadio(form, field)
{
  fieldname = eval(form.name+'.'+field.id);
  for (i=0;i<fieldname.length;i++) {
    if (fieldname[i].checked) {
      return true; 
    }
  }
  field.focus(); 
  return false; 
} 


평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글