분류:: 컴퓨터/인터넷 << 리눅스/서버

[preg_match] UTF-8 한글입력 체크하기

[preg_match]을 사용하여 한글입력 체크하기


스펨글이 하도 극성을 부려 한글입력이 있으면 OK 하기로 하고 만들다. 

(스펨글 대부분이 영어와 링크 걸려고 오더군요.)

그래서 링크는 무조건 스펨으로... 


preg_match 함수는 정규식으로 문자열을 비교하는 함수이다.

다음 정규식으로 한글이 있는지 여부를 판단할수 있읍니다.


preg_match('/[xA1-xFE][xA1-xFE]/', $str); //ANSI 문자 일때


preg_match('/[\x{AC00}-\x{D7AF}]+/u', $str);  //UTF-8 일때


기본적으로 한글이 포함되어 있으면 true 아니면 false를 반환 한다.

반복 사용을 위해서 preg_match를 사용한 함수를 하나 만든다.


유니코드 범위는 다음과 같다.

영대소 : [\x{1100}-\x{11FF}]

한글 자모 : [\x{3130}-\x{318F}]

한글 : [\x{AC00}-\x{D7AF}]

특수문자 : [\ -\~]

한자 : [\x{2E80}-\x{2EFF}\x{31C0}-\x{31EF}\x{3200}-\x{32FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FBF}\x{F900}-\x{FAFF}\x{20000}-\x{2A6DF}\x{2F800}-\x{2FA1F}]


UTF-8 문자표는  http://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_5000%7E5FFF  에서 참조 한다.



소스 코드

    <?php 

     함수정의 

    function hangle_check($str){

     if( preg_match('/[\x{AC00}-\x{D7AF}]+/u', $str) ){        //UTF-8 일때

  return true;     // "한글이 있을때"

   }else{

  return false;   //"한글이 없을때";

    }

     }


함수 사용하기 

   $hangle = hangle_check("한글");

    if($hangle){

            echo "한글이 있다.";

          } else{

              echo "한글이 없다.";

         }


다른 방법으로 사용

    $str = "korea 한글" ;


    if(hangle_check($str) ){

            echo "한글이 있다.";

          } else{

              echo "한글이 없다.";

          }


?>



댓 글


Name Password
내 용
싸인펜의 사진창고    인터넷 자료창고   설계자료 모음