php金额校验函数

在开发过程中,多多少少都会遇到金额值得校验,被测试员撵着屁股走,每次都给我提这个问题,不善其扰。简单正则已经无法做到排除-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;
}

猜你喜欢

转载自blog.csdn.net/z3287852/article/details/112791717
今日推荐