PHP 정규식 패턴 모음 preg 사용

munilive
Written by munilive on (Updated: )

자주 사용되는 정규식 및 그누보드에서 사용하기 좋은 코드를 모아서 정리 하였다.
자주 업데이트 하지 않겠지만, 그래도 나중에 필요 할 때 찾아서 볼 수 있었으면 좋겠다.
사용된 언어는 PHP

  • 핸드폰번호 – 넣어서 출력하기
    $ohp = preg_replace("/\D/", "", $ohp);
    $ohp = preg_replace("/^([0-9]{3})([0-9]*)([0-9]{4})$/", "$1-$2-$3", $ohp);
    
  • 일반전화 – 넣어서 출력하기 함수
    function TelephoneFormat($tel, $str) {
      $tel = preg_replace("/\D/", "", $tel);
     
      if(strlen($tel) == 12) {
          $tel = preg_replace("/^([0-9]{4})([0-9]*)([0-9]{4})$/", "$1{$str}$2{$str}$3", $tel);
      } else if(substr($tel, 0, 2) == "02") {
          $tel = preg_replace("/^([0-9]{2})([0-9]*)([0-9]{4})$/", "$1{$str}$2{$str}$3", $tel);
      } else {
          $tel = preg_replace("/^([0-9]{3})([0-9]*)([0-9]{4})$/", "$1{$str}$2{$str}$3", $tel);
      }
     
      return $tel;
    }
    // 함수 추가 하고
    $tel = TelephoneFormat($tel, "-"); // 이런식으로
    
  • 입력된 텍스트에서 line-height 스타일 찾아 제거하기 – 응용하면 직접 입력한 스타일을 제어 할 수 있음.
    $row[fa_subject] = preg_replace("/line-height[\s]*:[\s]*([0-9]+)px/i", "", $row[fa_subject]);
    
  • 페이징 함수나 페이징 클래스 등으로 만들어져서 나오는 html 을 수정 할수 있는 패턴 – 그누보드용
    $list_page = preg_replace("/>\s+</", "><", $list_page);
    $list_page = preg_replace("/<span>([0-9]+)<\/span>/", "$1", $list_page);
    $list_page = preg_replace("/<span class=\"currentPage\">([0-9]+)<\/span>/", "<strong>$1</strong>", $list_page);
    $list_page = preg_replace("/<a href=\"([^\"]+)\">처음<\/a>/i", "<a href=\"$1\" class='prev'>처음</a>", $list_page);
    $list_page = preg_replace("/<a href=\"([^\"]+)\">이전<\/a>/i", "<a href=\"$1\" class='prev'>이전</a>", $list_page);
    $list_page = preg_replace("/<a href=\"([^\"]+)\">다음<\/a>/i", "<a href=\"$1\" class='next'>다음</a>", $list_page);
    $list_page = preg_replace("/<a href=\"([^\"]+)\">마지막<\/a>/i", "<a href=\"$1\" class='next'>마지막</a>", $list_page);
    
  • 그누보드 페이징 링크주소에서 페이지 번호만 불러내서 자바스크립트로 변경하기
    $qstr = preg_replace("/&page\=([0-9]+)/", "", $qstr);
    $pagelist = get_paging(10, $page, $total_page, "?{$qstr}&page=");
    $pagelist = str_replace("&nbsp;", "\n", $pagelist); // 한줄씩 해석을해야 되기 때문에 줄단위로 띄워줌
    $pagelist = preg_replace("/href=\'(.+)&page=([0-9]+)\'/", "href=\"Javascript:LoadProfileRight('{$mb_id}', 'album', '$2')\"", $pagelist);
    
    • 그누보드 common.php 에서 자동으로 자동으로 만들어지는 $qstr 변수에 기본적으로 page= 가 있기 때문에 만약 그대로 사용하면 page 변수가 중복되서 출력이 된다. 그러므로 그전에 $qstr 변수에서 page= 삭제 해야 한다.
  • 그누보드 $qstr 변수에서 page 를 뺀다.
    $wr_1_qstr = preg_replace("/(&|)page\=([0-9]*)/", "", $qstr);
    
  • 한글, 영문, 숫자일 경우에만 true 출력(한글은 UTF-8 유니코드에서만)
    preg_match("/[\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}a-zA-Z0-9\s]+/u", $split_nick)
    //한글패턴 : \x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}
    

Comments

comments powered by Disqus