validatePhoneNumber() , 전화번호 체크

<?
/**
* 전화번호 확인
* @param string $number (숫자만 세어 7~12개의 문자열)
*/

function validatePhoneNumber($number){
 $number = preg_replace('/[^0-9]/','',$number);
 switch(strlen($number)){
  case 7:;
  case 8:;
   $pattern = '/^(.{4})(.*)$/';
   $replace = '$1-$2';
  break;
  case 9:;
  case 10:;
  case 11:;
  case 12:
   $pattern = '/^(02|0.{2}|.{4})(.*)(.{4})$/';
   $replace = '$1-$2-$3';
  break;
 }
 if(!isset($pattern)){ return false; }
 return preg_replace($pattern,$replace,$number);
}

//================
// 테스트
//================
$arr = array(
  '02-1234-5678'
 ,'02'
 ,'02-1'
 ,'02-12'
 ,'02-123'
 ,'02-1234'
 ,'02-1234-5'
 ,'02-1234-56'
 ,'02-1234-567'
 ,'02-1234-5678'
 ,'02-1234-56789'
 ,'02-1234-567890'

 ,'099'
 ,'099-1'
 ,'099-12'
 ,'099-123'
 ,'099-1234'
 ,'099-1234-5'
 ,'099-1234-56'
 ,'099-1234-567'
 ,'099-1234-5678'
 ,'099-1234-56789'
 ,'099-1234-567890'

 ,'0505'
 ,'0505-1'
 ,'0505-12'
 ,'0505-123'
 ,'0505-1234'
 ,'0505-12345'
 
 ,'1599'
 ,'1599-1'
 ,'1599-12'
 ,'1599-123'
 ,'1599-1234'
 ,'1599-12345'
 ,'1599-123456'
 ,'1599-1234567'
 ,'1599-12345678'
 ,'1599-123456789'
 ,'1599-1234567890'
);

for($i=0,$m=count($arr);$i<$m;$i++){
 $number = $arr[$i];
 echo $number." \t= ";
 echo validatePhoneNumber($number);
 echo "\n";
}
 

/*
결과
02-1234-5678    = 02-1234-5678
02      =
02-1    =
02-12   =
02-123  =
02-1234         =
02-1234-5       = 0212-345
02-1234-56      = 0212-3456
02-1234-567     = 02-123-4567
02-1234-5678    = 02-1234-5678
02-1234-56789   = 02-12345-6789
02-1234-567890  = 02-123456-7890
099     =
099-1   =
099-12  =
099-123         =
099-1234        = 0991-234
099-1234-5      = 0991-2345
099-1234-56     = 099-12-3456
099-1234-567    = 099-123-4567
099-1234-5678   = 099-1234-5678
099-1234-56789  = 099-12345-6789
099-1234-567890         =
0505    =
0505-1  =
0505-12         =
0505-123        = 0505-123
0505-1234       = 0505-1234
0505-12345      = 050-51-2345
1599    =
1599-1  =
1599-12         =
1599-123        = 1599-123
1599-1234       = 1599-1234
1599-12345      = 1599-1-2345
1599-123456     = 1599-12-3456
1599-1234567    = 1599-123-4567
1599-12345678   = 1599-1234-5678
1599-123456789  =
1599-1234567890         =
*/


?>

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1