
マイナスを含めた整数チェックの場合、preg_match() で判定すると手っ取り早くできます。
下記コード例は、Cakephp4 で書いてますが、他のフレームワークや素のPHPで正規表現を利用すれば応用は効くはずです。
Cakephp4: preg_matchを用いたマイナス含む整数チェック
// validationDefaultなどのバリデートメソッド内にて
$validator
->notEmptyString('number', '数を入力してください')
->add('number', 'checkNumeric', [
'rule' => function ($data) {
return preg_match('/^[-]?[0-9]+$/', (string)$data) ? true : false;
},
'message' => '数を正しく入力してください',
])
return $validator;
このようにすることで、先頭にマイナスがあり、数値だけを許可する方法があります。
ちなみに、マイナスを含まないなのであれば [-] を除けばよいだけなので、簡単ですね。