下面的函數檢查字符串是否爲整數,意味着它只應包含數字。但它不檢查數字是否爲負數(負數也應該返回true,因爲它們是整數)。檢查字符串是否爲整數(包括負數)PHP
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
abs($ val)返回一個數字,如果$ val = null,false,true等... – GGio
@GGio然後'is_numeric($ val)&& is_numeric(abs($ val))' – raidenace
我DownVote:'is_numeric(abs('125a')) '導致誤報。 – codekandis