检查php帖子值是数字和格式良好

时间:2017-01-03 17:52:50

标签: php

我需要检查POST值是否为数字且格式正确。我期望的格式是

number.number
1.0
11.5

如果POST值没有.(DOT) 1,那么我希望php将其转换为1.0

我试过这段代码,但它没有用。

$foo = '2';
$foo = preg_match('/\\d{2}\\:\\d{2}\\.\\d{2}/', $foo);

谢谢:)

2 个答案:

答案 0 :(得分:0)

您基本上想要检查POST数组中的变量是否为float / double(float / double是x.x格式的数字类型)。

如果字符串是浮点数/双数字

,则进行清算

要做到这一点,请使用这个php内置函数:is_double或更准确:is_float,它将告诉您字符串是否为float / double。

检查字符串是否为整数并将其转换为double / float值

如果它不是双精度数,请检查它是否为整数(常规数):is_int,如果它确实是一个整数,则使用它将其强制转换为双精度number_format,请查看此处的用法:integer to double/float in php

示例

$final_value;
$value = $_POST["wanted_value"];
if (is_float($value))
{
    $final_value = $value;
}
else if (is_int($value))
{
    $final_value = number_format($value, 1); // or 2 instead of 1 (2.0 or 2.00)
}
else
{
    $final_value = "ERROR";
}

希望这有帮助!

答案 1 :(得分:0)

工作代码

//$value = '22';
$value = $_POST["input_value"];
if (is_numeric($value)) {

    $new_value = number_format($value, 1);

} else {

    $new_value = "$value is not numeric. <br>";

}

echo $new_value;