[PHP-users 25653] Re: 文字列がカナだけで構成されているかどうか

mikan_ist @ yahoo.co.jp mikan_ist @ yahoo.co.jp
2005年 5月 22日 (日) 16:38:50 JST


┏━━━━━━━━━━━━━━…‥‥・・
┃ in MESSAGE: <200505211500.AA00611 @ T42.netcube.jp>
┃     日  付: Sun, 22 May 2005 00:00:54 +0900
┃     差出人: KITAO Kaoru <kitao @ netcube.jp>
┃     件  名: [PHP-users 25649] 文字列がカナだけで構成されているかどうか
┗━━━━━━ への返信です ━━━━━━━━━…‥‥・・

三館です。

何か、感じ悪くて恐縮ですが、単純にひらがな/カタカナの正当性をチェックす
るだけなら、キャラクタ単位でチェックさせるより正規表現を使った方がスマー
トな感じがしますが...
私だけですかね^^;

北尾さんのスクリプトを参考に正規表現でのひらがな/カタカナの正当性チェッ
ク サンプル

--
function kana_check($str,$flag){
    //取りあえず半角英数を全角に変換
    $str = mb_convert_kana($str,"A");
    switch ($flag) {
        case "H":
            //ひらがなチェック
            $str = mb_convert_kana(mb_convert_kana($str,"KV"),"c");
            if (!mbereg('^([あ-ん]|[ー]){1,16}$',$str)) {
                $str = false;
            }
            break;
        case "K":
            //カタカナチェック
            $str = mb_convert_kana(mb_convert_kana($str,"KV"),"C");
            if (!mbereg('^([ァ-ヶ]|[ー]){1,16}$',$str)) {
                $str = false;
            }
            break;
        default:
            exit("specify 'H' or 'K'");
            break;
    }        
    return $str;
}

| 北尾といいます。こんにちは。
| 簡単な自作スクリプト公開のお知らせです(ほんとに簡単です)。
| 
| 入力フォームの処理をおこなう際に「読み仮名」を入力させることはよくあることですが、
| 今までは特に何の処理もせず、単純にmb_convert_kanaを使って半角カナを全角にしておく
| 程度の処理しかしていませんでした。
| 上記の場合、たとえば平仮名で入力してもらいたいときはカタカナの入力があっても自動
| 的に変換できますが、英数字や漢字があっても結果的にフォームでエラーを出すことがで
| きませんでした。
| そこで文字列が平仮名またはカタカナだけで構成されているかチェックする関数を公開し
| ました。以下のURLからたどってください。
| 
| http://www.cubeworks.co.jp/php/
| 
| いろいろなやり方があると思うのですが、やり方の一例程度にお考えいただければ幸いです。
| 何かご指摘があればお教え下さい。
| どうぞよろしくお願いします。
| 
| _______________________________________________
| PHP-users mailing list  PHP-users @ php.gr.jp
| http://ns1.php.gr.jp/mailman/listinfo/php-users
| PHP初心者のためのページ - 質問する前にはこちらをお読みください
| http://www.php.gr.jp/php/novice.php3

__________________________________
Do You Yahoo!?
Upgrade Your Life
http://bb.yahoo.co.jp/



PHP-users メーリングリストの案内