phpで半角カタカナのみの入力チェックの必要性があったのでメモ。
参考url:
正規表現:半角カナが含まれていないか調べる – phpspot
最初は下記の通りやったのですが、小文字の「ァ~ォ、ッ、ャ~ョ」濁点「゙゚」等が反応しなく
うまくいきませんでした。
<?php
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
$str = 'アイウエオャュョバピ';
if (mb_ereg('^[ア-ン]+$', $str)) {
echo '半角カタカナのみです';
} else {
echo '半角カタカナ以外の文字も含まれています';
}
?>
そこで調べた結果、下記の様にするとうまく行きました。
<?php
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
$str = 'アイウエオャュョバピ';
if (mb_ereg('^[ヲ-゚]+$', $str)) {
echo '半角カタカナのみです';
} else {
echo '半角カタカナ以外の文字も含まれています';
}
?>
ちなみに、句読点「、」「。」等も含めたい場合は
mb_ereg('^[。-゚]+$', $str)
とすると良さそうです。
う~ん、正規表現は難しい~(;´Д`)
もし間違ってたり、もっと良い方法をご存じの方はお知らせ頂けると嬉しいです(´∀`)

『mb_ereg(‘^[ヲ-゚]+$’, $str)) 』にしなきゃならないのは、文字コード表(http://ash.jp/code/unitbl21.htm)で”ア”(半角カタカナのア)よりも”ヲ”(半角カタカナのヲ)が先にあるからでしょうか。
参考になりました。ありがとうございました。