출처 : http://dryad.kr/bbs/board.php?bo_table=rboard01&wr_id=282


input창에 사용자가 숫자를 입력하면 자동으로 하이픈(-)을 붙여 달라고 요청...
 
ㅎ ㅏ아...진짜 이런건 input박스를 3개로 나뉘어 주고 maxlength를 각 input박스에 맞게 수정하면 될거를
꼭 한개의 input박스로 해달라고 해놓고 이런걸 요청하는 사람들이 있다..
 
간단하게 해결하기 위해 검색해봤지만 제대로 검색된 결과가 없어서..
일단 짜집기 ㄱㄱㄱㄱ
 
유저들은 어떤생각을 가지고 입력할지 모른다.
대충 이렇게 입력하겠지 라는 생각을 가지고 진행하다 보면..좌절을 겪을수 있다..
 
특수기호..032)123-1234로 입력할수도 있겠고 032.123.1234로 입력할수도 있고..
 
 
아예 특수기호를 다 빼고 다시 하이픈(-)을 붙여버리자..
국번이 두자리수인 02가 걸리네..
인터넷전화가 걸리네..후아...
 
 
<script language="javascript">
 function chk_tel(str, field){
  var str;
  str = checkDigit(str);
  len = str.length;
  
  if(len==8){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(1,str);
   }   
  }else if(len==9){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    error_numbr(str, field);
   }
  }else if(len==10){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    field.value = phone_format(3,str);
   }
  }else if(len==11){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(3,str);
   }
  }else{
   error_numbr(str, field);
  }
 }
 function checkDigit(num){
  var Digit = "1234567890";
  var string = num;
  var len = string.length
  var retVal = "";
  for (i = 0; i < len; i++){
   if (Digit.indexOf(string.substring(i, i+1)) >= 0){
    retVal = retVal + string.substring(i, i+1);
   }
  }
  return retVal;
 }
 function phone_format(type, num){
  if(type==1){
   return num.replace(/([0-9]{4})([0-9]{4})/,"603006-4590");
  }else if(type==2){
   return num.replace(/([0-9]{2})([0-9]+)([0-9]{4})/,"603006-4590-

출처 : http://dryad.kr/bbs/board.php?bo_table=rboard01&wr_id=282


input창에 사용자가 숫자를 입력하면 자동으로 하이픈(-)을 붙여 달라고 요청...
 
ㅎ ㅏ아...진짜 이런건 input박스를 3개로 나뉘어 주고 maxlength를 각 input박스에 맞게 수정하면 될거를
꼭 한개의 input박스로 해달라고 해놓고 이런걸 요청하는 사람들이 있다..
 
간단하게 해결하기 위해 검색해봤지만 제대로 검색된 결과가 없어서..
일단 짜집기 ㄱㄱㄱㄱ
 
유저들은 어떤생각을 가지고 입력할지 모른다.
대충 이렇게 입력하겠지 라는 생각을 가지고 진행하다 보면..좌절을 겪을수 있다..
 
특수기호..032)123-1234로 입력할수도 있겠고 032.123.1234로 입력할수도 있고..
 
 
아예 특수기호를 다 빼고 다시 하이픈(-)을 붙여버리자..
국번이 두자리수인 02가 걸리네..
인터넷전화가 걸리네..후아...
 
 
<script language="javascript">
 function chk_tel(str, field){
  var str;
  str = checkDigit(str);
  len = str.length;
  
  if(len==8){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(1,str);
   }   
  }else if(len==9){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    error_numbr(str, field);
   }
  }else if(len==10){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    field.value = phone_format(3,str);
   }
  }else if(len==11){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(3,str);
   }
  }else{
   error_numbr(str, field);
  }
 }
 function checkDigit(num){
  var Digit = "1234567890";
  var string = num;
  var len = string.length
  var retVal = "";
  for (i = 0; i < len; i++){
   if (Digit.indexOf(string.substring(i, i+1)) >= 0){
    retVal = retVal + string.substring(i, i+1);
   }
  }
  return retVal;
 }
 function phone_format(type, num){
  if(type==1){
   return num.replace(/([0-9]{4})([0-9]{4})/,"$1-$2");
  }else if(type==2){
   return num.replace(/([0-9]{2})([0-9]+)([0-9]{4})/,"$1-$2-$3");
  }else{
   return num.replace(/(^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
  }
 }
 function error_numbr(str, field){
  alert("정상적인 번호가 아닙니다.");
  field.value = "";
  field.focus();
  return;
 }
 
</script>
<input type="input" name="tel1" onblur="chk_tel(this.value,this);" >

사용예)
032)1234-1234 = 032-1234-1234
032.1234.1234 = 032-1234-1234
03212341234 = 032-1234-1234
02)123-1234 = 02-123-1234
02)1231234 = 02-123-1234
021231234 = 02-123-1234
02)12312345 = 02-1231-2345
15881234 = 1588-1234
등 서울번호 및 각지역번호 인터넷번호 가능

");
  }else{
   return num.replace(/(^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"603006-4590-

출처 : http://dryad.kr/bbs/board.php?bo_table=rboard01&wr_id=282


input창에 사용자가 숫자를 입력하면 자동으로 하이픈(-)을 붙여 달라고 요청...
 
ㅎ ㅏ아...진짜 이런건 input박스를 3개로 나뉘어 주고 maxlength를 각 input박스에 맞게 수정하면 될거를
꼭 한개의 input박스로 해달라고 해놓고 이런걸 요청하는 사람들이 있다..
 
간단하게 해결하기 위해 검색해봤지만 제대로 검색된 결과가 없어서..
일단 짜집기 ㄱㄱㄱㄱ
 
유저들은 어떤생각을 가지고 입력할지 모른다.
대충 이렇게 입력하겠지 라는 생각을 가지고 진행하다 보면..좌절을 겪을수 있다..
 
특수기호..032)123-1234로 입력할수도 있겠고 032.123.1234로 입력할수도 있고..
 
 
아예 특수기호를 다 빼고 다시 하이픈(-)을 붙여버리자..
국번이 두자리수인 02가 걸리네..
인터넷전화가 걸리네..후아...
 
 
<script language="javascript">
 function chk_tel(str, field){
  var str;
  str = checkDigit(str);
  len = str.length;
  
  if(len==8){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(1,str);
   }   
  }else if(len==9){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    error_numbr(str, field);
   }
  }else if(len==10){
   if(str.substring(0,2)==02){
    field.value = phone_format(2,str);
   }else{
    field.value = phone_format(3,str);
   }
  }else if(len==11){
   if(str.substring(0,2)==02){
    error_numbr(str, field);
   }else{
    field.value  = phone_format(3,str);
   }
  }else{
   error_numbr(str, field);
  }
 }
 function checkDigit(num){
  var Digit = "1234567890";
  var string = num;
  var len = string.length
  var retVal = "";
  for (i = 0; i < len; i++){
   if (Digit.indexOf(string.substring(i, i+1)) >= 0){
    retVal = retVal + string.substring(i, i+1);
   }
  }
  return retVal;
 }
 function phone_format(type, num){
  if(type==1){
   return num.replace(/([0-9]{4})([0-9]{4})/,"$1-$2");
  }else if(type==2){
   return num.replace(/([0-9]{2})([0-9]+)([0-9]{4})/,"$1-$2-$3");
  }else{
   return num.replace(/(^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3");
  }
 }
 function error_numbr(str, field){
  alert("정상적인 번호가 아닙니다.");
  field.value = "";
  field.focus();
  return;
 }
 
</script>
<input type="input" name="tel1" onblur="chk_tel(this.value,this);" >

사용예)
032)1234-1234 = 032-1234-1234
032.1234.1234 = 032-1234-1234
03212341234 = 032-1234-1234
02)123-1234 = 02-123-1234
02)1231234 = 02-123-1234
021231234 = 02-123-1234
02)12312345 = 02-1231-2345
15881234 = 1588-1234
등 서울번호 및 각지역번호 인터넷번호 가능

");
  }
 }
 function error_numbr(str, field){
  alert("정상적인 번호가 아닙니다.");
  field.value = "";
  field.focus();
  return;
 }
 
</script>
<input type="input" name="tel1" onblur="chk_tel(this.value,this);" >

사용예)
032)1234-1234 = 032-1234-1234
032.1234.1234 = 032-1234-1234
03212341234 = 032-1234-1234
02)123-1234 = 02-123-1234
02)1231234 = 02-123-1234
021231234 = 02-123-1234
02)12312345 = 02-1231-2345
15881234 = 1588-1234
등 서울번호 및 각지역번호 인터넷번호 가능