PHP验证金额

时间:2018-09-25 09:43:21

标签: php regex validation

我有一个金额字段,该字段始终为正数,没有小数点,例如10000、1200、10、40等。 我正在使用下面的代码检查有效金额。

if (!preg_match('/^[1-9][0-9]*$/', $_POST['amount'])) {
    $error[] = 'Invalid amount';
}

是对的。而且,我是否需要使用php的空函数单独检查空的帖子数量,还是在preg_match以上也检查空的字符串数量?

2 个答案:

答案 0 :(得分:2)

为什么不简单地使用filter_var(),例如:

if (!abs(filter_var($_POST['amount'], FILTER_VALIDATE_FLOAT))) {
    $error[] = 'Invalid amount';
}

答案 1 :(得分:0)

当转换为绝对int值时,我将字符串与自身进行比较。它更具可读性和可维护性。

if ($_POST['amount'] !== abs(intval($_POST['amount']))) {
    $error[] = 'Invalid amount';
}