PHPで半角カタカナの入力チェック(正規表現)


PHPで半角カタカナの入力チェック(正規表現)phpで半角カタカナのみの入力チェックの必要性があったのでメモ。

参考url:

正規表現:半角カナが含まれていないか調べる – phpspot

半角カナ – Wikipedia

最初は下記の通りやったのですが、小文字の「ァ~ォ、ッ、ャ~ョ」濁点「゙゚」等が反応しなく

うまくいきませんでした。

<?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)

とすると良さそうです。

う~ん、正規表現は難しい~(;´Д`)
もし間違ってたり、もっと良い方法をご存じの方はお知らせ頂けると嬉しいです(´∀`)

こちらの関連記事も合わせて読んでみては?:)

  1. PHPでアップロードされたファイルタイプのチェック方法(fileinfo, mime-type) サンプル編
  2. PHPで画像をリサイズ(ImageMagickとimagick) サンプル編
  3. PHPコード最適化高速化TIPSまとめ
  4. PHPでタイムスタンプをRFC 2822 フォーマットされた日付に変換する方法
  5. PHPで画像を擬似的にキャッシュさせない方法

One thought on “PHPで半角カタカナの入力チェック(正規表現)

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

    参考になりました。ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>