php 정규식 한글이 있는지 체크하는부분 여쭤봅니다..

php 정규식 한글이 있는지 체크하는부분 여쭤봅니다..

QA

php 정규식 한글이 있는지 체크하는부분 여쭤봅니다..

답변 3

본문

$str = "zzzzzd’zdz";

if (preg_match("/[\xE0-\xFF][\x80-\xFF][\x80-\xFF]/", $str))
    echo "한글포함";
else
    echo "한글없음";
 

이걸로 체크를 하고 있는데요

분명한글이 없는데 저기중간에 특문이 하나 들어가있는걸로 인해 한글이 있다고 표기됩니다..

인터넷에서 찾은 식인데 잘못된건가요??

 

 

이 질문에 댓글 쓰기 :

답변 3

해당 코드는 한글이 아닌 UTF-8 문자열에서 3바이트 문자열 패턴을 찾는 정규식입니다.

만약 한글을 포함하는지 여부를 확인하려면 다음과 같이 수정하면 됩니다.

 


 
$str = "한글 포함여부' 확인";
if (preg_match("/[\x{AC00}-\x{D7AF}]+/u", $str))
     echo "한글 포함";
else
     echo "한글 없음";
 
결과 : 한글포함
 

 


 
$str = "zzzzzd’zdz";
if (preg_match("/[\x{AC00}-\x{D7AF}]+/u", $str))
     echo "한글 포함";
else
     echo "한글 없음";
 
결과 : 한글없음
 

 

위 코드에서는 preg_match() 함수를 사용하여 입력 문자열 $str 에서 한글이 포함되어 있는지 여부를 판별합니다. u 모드를 사용하여 유니코드 문자열을 처리하도록 지정하고, 정규식 패턴으로는 한글 유니코드 범위를 나타내는 \x{AC00}-\x{D7AF} 를 사용합니다.

해당 정규식 패턴은 유니코드 블록인 'Hangul Syllables'에 해당하는 한글 문자들을 포함합니다. 따라서 한글이 포함되어 있는지 여부를 판별할 수 있습니다.

참고 : 챗GPT

 

 

 

php 5.3 이상이라면 (당연하겠지만)

 

if (preg_match("/[가-힣]+/", $str)){

    echo "한글 포함";

} else {

    echo "한글 없음";

}

 

완성형 기준으로 이렇게 가-힣 도 쓰입니다^^;

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 220
© SIRSOFT
현재 페이지 제일 처음으로