我需要检查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);
谢谢:)
答案 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;