> 백엔드 개발 > PHP 튜토리얼 > 내 PCRE/PHP 패턴이 유니코드 문자와 정확하게 일치하는지 어떻게 확인할 수 있나요?

내 PCRE/PHP 패턴이 유니코드 문자와 정확하게 일치하는지 어떻게 확인할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-16 22:26:14
원래의
377명이 탐색했습니다.

How Can I Ensure My PCRE/PHP Patterns Correctly Match Unicode Characters?

PCRE/PHP의 유니코드 문자 일치

PHP에서 PCRE를 사용하여 이름을 확인하려고 하면 ASCII가 아닌 문자와 관련된 문제가 발생할 수 있습니다. Ă 또는 张 등. 이는 사용된 패턴이 유니코드 호환성을 명시적으로 고려하지 않기 때문입니다.

패턴 문제

원래 패턴인 $namePattern은 유니코드 문자와 일치하도록 의도되었지만 오로지 유니코드 문자에만 의존합니다. p{L} 속성. 이 속성은 일반적으로 ASCII 문자에 대해 작동하지만 확장 유니코드 문자를 올바르게 처리하지 못할 수 있습니다.

해결책: 유니코드 수정자

유니코드 문자가 올바르게 일치하도록 하려면 다음을 수행하십시오. PCRE와 함께 u 수정자를 사용하는 데 필수적입니다. 이 수정자는 PHP를 유니코드 모드로 전환하여 유니코드 문자 속성 및 패턴을 사용할 수 있도록 합니다.

이 수정자를 추가하면 수정된 패턴은 다음과 같습니다.

$namePattern = '/^[-\' \p{L}]+$/u';
로그인 후 복사

이 패턴은 이제 두 가지 모두 올바르게 일치합니다. ASCII 및 확장 유니코드 문자는 물론 아포스트로피, 하이픈, 공백도 가능합니다.

위 내용은 내 PCRE/PHP 패턴이 유니코드 문자와 정확하게 일치하는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿