php接受0.01作为输入

时间:2015-04-02 02:43:10

标签: php regex validation int

我有一个HTML表单,其中包含:

<input type="number" step="any" name="nearkm" value="000.000" onfocus="if(this.value == '000.000') { this.value = ''; }"></>

输入可以是000.001到999.999

用于验证正确输入的search.php代码如下:

if (!isset($_GET["nearkm"]) || empty($_GET["nearkm"]) || (int) $_GET["nearkm"] == null)

代码适用于包括1以上的输入,但是,如果输入0.01或任何小于1的值,则if条件失败。

我的问题是,是否有更好的方法来检查输入,例如,使用正则表达式或其他函数?

1 个答案:

答案 0 :(得分:0)

首先,您应该使用PHP提供的intval()函数将字符串安全地转换为整数。

其次,如果你想要像0.01或0.999这样的数字你需要一个 float ,整数没有小数,所以你应该实际使用floatval()。< / p>

你遇到的问题是,当0.01被转换为整数时,它被舍入(为0),松散地等于null,你需要使用floatval()并使用精确的 - 使用===进行比较,如:floatval($_GET["nearkm"]) === 0