PCRE/PHP での Unicode 文字のマッチング
PHP で PCRE を使用して名前を検証しようとすると、非 ASCII 文字に関する問題が発生する可能性があります「Ă」や「张」など。これは、使用されるパターンが Unicode 互換性を明示的に考慮していないためです。
パターンの問題
元のパターン $namePattern は Unicode 文字と一致することを意図していますが、のみに依存しています。 p{L} プロパティ。通常、このプロパティは ASCII 文字に対して機能しますが、拡張 Unicode 文字を正しく処理できない場合があります。
解決策: Unicode 修飾子
Unicode 文字を適切に一致させるには、次のようにします。 PCRE で u 修飾子を使用することが必須です。この修飾子は PHP を Unicode モードに切り替え、Unicode 文字のプロパティとパターンを使用できるようにします。
この修飾子を追加すると、変更されたパターンは次のようになります。
$namePattern = '/^[-\' \p{L}]+$/u';
このパターンは両方に正しく一致します。 ASCII 文字と拡張 Unicode 文字、アポストロフィ、ハイフン、スペース。
以上がPCRE/PHP パターンが Unicode 文字と正しく一致することを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。