PHPプログラムに関する各種メモ書き

文字列に「ひらがな(全角)」「漢字(全角)」「カタカナ(全角)」「カタカナ(半角)」が使われているか判別する。

文字列に「ひらがな(全角)」「漢字(全角)」「カタカナ(全角)」が使われているかを判別するには次のようにする

PHP5 + UTF-8の場合

mb_regex_encoding('UTF-8');
if ( preg_match('/[一-龠]+/u', $q)  ){ 漢字を含む時の処理 }
if ( preg_match('/[ァ-ヶー]+/u', $q) ){ カタカナを含む時の処理 }
if ( preg_match('/[ぁ-ん]+/u', $q) ){ ひらがなを含む時の処理 }
if ( preg_match('/[ア-ン゙゚]+/u', $q) ){ 半角カタカナを含む時の処理 }

■ 注意1

正規表現のオプション【 /u 】というのが最後にくっついていますが、

これは文字コード UTF-8 で検索を行うときには必ず必要なものです。

忘れないよう注意!


■ 注意2

また上記の例だと「ー」はひらがなとしてマッチしません。

ひらがなにも「ー」を含ませる場合は

if ( preg_match('/[ー-ん]+/u', $q) ){ ひらがなを含む }



仕方なく mb_ereg で実装する場合は下記の通り

mb_regex_encoding('EUC-JP');

if ( mb_ereg('[一-龠]+', $q) ) { 漢字を含む }


Unicode対応 文字コード表

!JP 付録4 日本語文字一覧

http://jprs.jp/doc/rule/saisoku-1-wideusejp-furoku-4.html


ASCII文字コード一覧表

http://www.psl.ne.jp/perl/pdojo00b.html


memo.xight.org - PHPの文字化け - 5つの誤解と5つの対策

http://memo.xight.org/2007-02-14-1



関連エントリー

No.473
11/19 14:06

edit

正規表現
日本語