无符号验证号码(科学)

时间:2014-07-14 06:55:55

标签: php validation numbers scientific-notation

我在验证数字时遇到了一个真正的问题。

如果我的表单有一个货币值字段(1.99),我可以使用floatval验证输入并保存在我的数据库中。

但如果值是科学记数法(1E7),则操作将返回true,我将在DB中保存时遇到问题。

我几天试图解决这个问题,我怎么能解决这个问题呢? 提前谢谢

示例:

floatval( '17E20' ) // float(1.7E+21)
floatval( '0xFF'  ) // float(0)
floatval( '7E-10' ) // float(7.0E-10)
floatval( '1.23X' ) // float(1.23)

1 个答案:

答案 0 :(得分:1)

来自浏览器的用户输入是字符串。我们需要在.,之后使用2位数验证字符串作为简单的小数部分表示法。

$value = '122.33';
$result = preg_match('/^\d+([\.,]\d{1,2})?$/', $value);
                               // ^ one or two digit
                           // ^ dot or comma
                      // ^ at least one digit