開発の過程で、多かれ少なかれ量をチェックする価値があります。テスターは私のお尻を叩き、毎回この質問をしましたが、それは不快でした。単純な正則化では、-0,0,0.00,01,0001の値を除外できなくなりました。したがって、それが正しい金額形式であるかどうかを判断するための一般的な関数を記述します。
/**
* 金额校验函数
* @param $value
* @param bool $isZero
* @param bool $negative
* @return bool
*/
function isAmount($value, $isZero=false, $negative=false){
// 必须是整数或浮点数,且允许为负
if (!preg_match("/^[-]?\d+(.\d{1,2})?$/", $value)){
return false;
}
// 不为 0
if (!$isZero && empty((int)($value*100))){
return false;
}
// 不为负数
if (!$negative && (int)($value * 100) < 0){
return false;
}
return true;
}