必須チェック
両端の空白を除いてから、文字列の長さをチェック。
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(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()関数を使います。