ioerror

[JS] 전화번호 검사하기 본문

JavaScript

[JS] 전화번호 검사하기...

반응형

 

꽤 오래전에 작성한 전화번호 검사 스크립트.

 

/**
* 전화번호
*/

function SetTelFormat(obj)
{
  val = obj.value;
  if(val.length < 8) 
  {
    obj.value = "";
    obj.focus();
    alert("올바른 전화번호를 입력하세요.");
    return false;
  }
  str = "";
  for(i=0; i<val.length; i++) 
  {
    _val = val.substring(i,i+1);
    if(_val.search(/[0-9]/) == false) 
    {
      str = str+_val;
    }
  }
  // 1588 등 전화 번호
  if(str.length == 8) 
  {
    var pattern15xx = /^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/;
    if(!pattern15xx.exec(str)) 
    {
      obj.value = "";
      obj.focus();
      alert("올바른 전화번호를 입력하세요.");
      return false;
    }
    obj.value = str.substring(0,4)+"-"+str.substring(4);
    return true;
  }
  
  // 핸드폰
  mobilepattern = /^(01[016-9])/
  if(mobilepattern.exec(str)) 
  {
    var pattern = /^(01[016-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    if(!pattern.exec(str)) 
    {
      obj.value = "";
      obj.focus();
      alert("올바른 휴대전화번호를 입력하세요.");
      return false;
    }
    if(str.length == 11) 
    {
      obj.value = str.substring(0,3)+"-"+str.substring(3,7)+"-"+str.substring(7);
    }else 
    {
      obj.value = str.substring(0,3)+"-"+str.substring(3,6)+"-"+str.substring(6);
    }
  }else 
  {
    var pattern = /^(0[2-8][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    if(!pattern.exec(str)) 
    {
      alert("올바른 전화번호를 입력하세요.");
      obj.value = "";
      obj.focus();
      return false;
    }
    if(str.substring(0,2) == "02") 
    {
      if(str.length == 10) 
      {
        obj.value = str.substring(0,2)+"-"+str.substring(2,6)+"-"+str.substring(6);
      }else 
      {
        obj.value = str.substring(0,2)+"-"+str.substring(2,5)+"-"+str.substring(5);
      }
    }else if(str.substring(0,2) == "0505") 
    {
      if(str.length == 12) 
      {
        obj.value = str.substring(0,4)+"-"+str.substring(4,4)+"-"+str.substring(8);
      }else 
      {
        obj.value = str.substring(0,4)+"-"+str.substring(4,3)+"-"+str.substring(7);
      }
    }else 
    {
      if(str.length == 11) 
      {
        obj.value = str.substring(0,3)+"-"+str.substring(3,7)+"-"+str.substring(7);
      }else 
      {
        obj.value = str.substring(0,3)+"-"+str.substring(3,6)+"-"+str.substring(6);
      }
    }
  }
  return true;
}

/**
* 휴대전화번호
*/
function SetMobileFormat(obj)
{
    val = obj.value;
  if(val.length < 8) 
  {
    obj.value = "";
    obj.focus();
    alert("올바른 전화번호를 입력하세요.");
    return false;
  }
  str = "";
  for(i=0; i<val.length; i++) 
  {
    _val = val.substring(i,i+1);
    if(_val.search(/[0-9]/) == false)
    {
      str = str+_val;
    }
  }
    mobilepattern = /^(01[016-9])/
  if(mobilepattern.exec(str)) 
  {
    var pattern = /^(01[016-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    if(!pattern.exec(str)) 
    {
      obj.value = "";
      obj.focus();
      alert("올바른 휴대전화번호를 입력하세요.");
      return false;
    }
    if(str.length == 11) 
    {
      obj.value = str.substring(0,3)+"-"+str.substring(3,7)+"-"+str.substring(7);
    }else 
    {
      obj.value = str.substring(0,3)+"-"+str.substring(3,6)+"-"+str.substring(6);
    }
  }
}

 

반응형
Comments