正規表現 POSIX文字クラス
PHPで半角英数字とハイフン、アンダーバー等の半角記号をOKとする様なチェックを作った。
正規表現ちょー苦手なので、何処かからコピってきて
preg_match("/[a-zA-Z0-9!-/:-@\[-`{-~]+$/", $value);
とやってたんだけど、見辛いしあってるかどうかよく分かんない。
その後、Google先生の元で泳いでたらPOSIX文字クラスというものを発見。
POSIX(Portable Operating System Interface)は移植性を高めた共通API規格のことらしい。
上記の正規表現をPOSIX文字クラスで表すと、
preg_match("/^[[:alnum:][:punct:]]+$/", $value)
半角英数字の[a-zA-Z0-9]は[:alnum:]で表現、
半角記号は[:punct:]で表現される。
最初に書いた表現よりよっぽど見やすいし分かりやすい。
POSIX文字クラスには他にもいろいろあるみたい。
POSIX文字クラスについては以下のリンクを参考にさせていただきました。
http://www.y2sunlight.com/water/webman/php1/1J.3.html