2

以下の関数は、文字列が整数であるかどうかをチェックします。つまり、数字のみを含む必要があります。ただし、number が負かどうかはチェックしません (負の数は整数であるため、true を返す必要があります)。

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 を返すようにする必要があります

4

2 に答える 2

4

is_intあなたには十分ではありませんか?

filter_var($input, FILTER_VALIDATE_INT)同じ効果があるはずですが、文字列でも機能します。

于 2013-04-17T18:07:09.357 に答える
1

ただ使うis_numeric(abs($val))

于 2013-04-17T18:12:46.473 に答える