我有一个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条件失败。
我的问题是,是否有更好的方法来检查输入,例如,使用正则表达式或其他函数?
答案 0 :(得分:0)
首先,您应该使用PHP提供的intval()函数将字符串安全地转换为整数。
其次,如果你想要像0.01或0.999这样的数字你需要一个 float ,整数没有小数,所以你应该实际使用floatval()。< / p>
你遇到的问题是,当0.01被转换为整数时,它被舍入(为0),松散地等于null
,你需要使用floatval()
并使用精确的 - 使用===
进行比较,如:floatval($_GET["nearkm"]) === 0
。