環境
・Windows 10 Home (Bld. 19045.2965)
・VSCode 1.78.2
・Laravel Framework 10.7.1
・PHP 8.1.18
Laravelでpreg_matchを使用し、全角英文字と全角英子文字のみをチェックしようと思った際に少しハマったのでメモ。
全角英文字の正規表現で、
$pattern = "/[A-Z]/";
と書くとひらがなが反応してしまったり
$pattern = "/[\uFF21-\uFF3A]/";
としても何も反応しなかった。
色々調べた結果、
$pattern = "/[\x{FF21}-\x{FF3A}]/u";
で全角英文字のみチェック出来るようになった。
最終的に全角英小文字も追加して
$pattern = "/[\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}]/u";
とした。