ホームページ >バックエンド開発 >PHPチュートリアル >PCRE/PHP パターンが Unicode 文字と正しく一致することを確認するにはどうすればよいですか?

PCRE/PHP パターンが Unicode 文字と正しく一致することを確認するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-16 22:26:14384ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。