下面的函数检查字符串是否为整数,这意味着它应该只包含数字。但它不检查数字是否为负(负数也应该返回真,因为它们是整数)。
function validateInteger($value)
{
//need is_numeric to avoid $value = true returns true with preg_match
return is_numeric($value) && preg_match('/^\d+$/', $value);
}
我进行了测试并得到了结果:
'12.5' => FALSE
12.5 => FALSE
'a125' => FALSE
'125a' => FALSE
'1a2.5' => FALSE
125 => TRUE
'abc' => FALSE
false => FALSE
true => FALSE
'false' => FALSE
'true' => FALSE
null => FALSE
'null' => FALSE
'1231' => TRUE
-1231 => FALSE (SHOULD RETURN TRUE)
'-1231' => FALSE (SHOULD RETURN TRUE)
我不想使用itnval() < 0
. 我更喜欢正则表达式来检查负数。
谢谢
编辑:
我还有一个函数validateFloat
,如果给定数字是浮点数,则返回 true,这意味着它只能包含数字和点。我也需要对此应用相同的逻辑,以便它为负浮点数返回 true