Codeigniterの数字判定validationをまとめた件
いつも忘れるので、メモ。
バージョンは Codeigniter 3.0.3
です。
ルール | 小数点 | マイナス | 備考 |
---|---|---|---|
numeric | ○ | ○ | |
integer | × | ○ | |
decimal | ○ | ○ | 小数点表記のみ○ |
is_natural | × | × | 0は○ |
is_natural_no_zero | × | × | 0も× |
decimal
は小数点しか通さないのが意外でした。
参考までに各ルールの判定式を載せておきます。
<?php # system/libraries/Form_validatioin.php public function numeric($str) { return (bool) preg_match('/^[\-+]?[0-9]*\.?[0-9]+$/', $str); } public function integer($str) { return (bool) preg_match('/^[\-+]?[0-9]+$/', $str); } public function decimal($str) { return (bool) preg_match('/^[\-+]?[0-9]+\.[0-9]+$/', $str); } public function is_natural($str) { return ctype_digit((string) $str); } public function is_natural_no_zero($str) { return ($str != 0 && ctype_digit((string) $str)); } # ctype_digit は数字の判別関数で、引数に数字(自然数)が含まれていればTRUE # ただしマイナスや小数点が含まれているとFALSE。