現在リニューアル中 → 旧サイトはこちら

必須チェック

両端の空白を除いてから、文字列の長さをチェック。

function required($data) { //全角スペースを半角スペースに変換する $data = mb_convert_kana($data, "s"); return strlen(trim($data); }

文字数チェック

最大文字数チェック(半角)

function maxCcheck($data, $max) { // 全・半角空白の除去(共通関数) $data= Mymb_trim(trim($data)); if (strlen($data) > $max ) { return false; } else { return true; } }

最大文字数チェック(全角)

function mbMaxCheck($data, $max) { // 全・半角空白の除去(共通関数) $data= Mymb_trim(trim($data)); if (mb_strlen($data) > $max) { return false; } else { return true; } }

最小文字数チェック(半角)

function minCheck($data, $min) { // 全・半角空白の除去(共通関数) $data= Mymb_trim(trim($data)); if (strlen($data) < $min) { return false; } else { return true; } }

最小文字数チェック(全角)

function mbMinCheck($data, $min) { // 全・半角空白の除去(共通関数) $data= Mymb_trim(trim($data)); if (mb_strlen($data) < $min) { return false; } else { return true; } }

全角・半角が混在している場合

上記のサンプルでは、全角・半角を一律に1文字としてカウントしています。
場合によっては、全角・半角を別個にカウントしたい場合もあります。(全角10文字・半角20文字など。) バイト数でカウントしてもよさそうですが、全角文字は必ずしも2倍とは限りません。(UTF-8等)
そのため、文字列を一文字ずつ配列に格納し、strlenとmb_strlenの結果を比較する方法を取ります。

function miMmaxCheck($value, $max, $encode="UTF-8") { //スペースの場合はそのままリターン if (!strlen($value)) { return true; } // 文字列を1文字ずつ配列に入れる $char_arr = array(); for ($i=0; $i<mb_strlen($value, $encode); $i++) { $char_arr[] = mb_substr($value, $i, 1, $encode); } $zen_total = 0; $han_total = 0; foreach($char_arr as $char) { if (strlen( $char) == mb_strlen($char, $encode)) { $han_total++; } else { $zen_total++; } } $char_total = $zen_total + ((int)($han_total/2) + $han_total%2); return ($char_total >(int)$max) ? false : true; }

数値範囲チェック

function rangeCheck($data, $min, $max) { if (!strlen(trim($data))) { return true; //スペースはOK } if (!is_numeric($data)) { return false; } if ( intval($data) < $min || intval($data) > $max ) { return false; } else { return true; } }

半角数字チェック

function isNum($data) { $pat = "^[0-9]+$"; if (ereg($pat, trim($data))) { return true; } else { return false; } }

(参考)
ctype_digit() --- すべての文字が数字だった場合にTRUEを返す。
is_numeric() --- 数値または数値文字列の場合にTRUEを返す。
         符号(+、-)や小数(1.5)、指数(+0123.45e6)、16進表記(0xFF)も有効。

半角英字チェック

function isAlpha($data) { $pat = "^[a-zA-Z\']+$"; if (ereg($pat, trim($data))) { return true; } else { return false; } }

(参考) ctype_alnum() --- すべての文字が英字または数字だった場合にTRUEを返す。
ctype_alpha() --- すべての文字が英字だった場合にTRUEを返す。

大文字・小文字チェック

ctype_upper()関数やctype_lower()関数を使います。