2014-02-10 45 views
0

我正在寻找使用php验证字段。在该字段中输入的值应该是浮点值。没有其他人可以接受。甚至不是整数。它应该接受像5.2或4.1等值。像3或56或123等整数也不被接受。希望它是明确的。如何验证只接受浮点值在php

在此先感谢

回答

1

。利用PHP中is_float的。

<?php 
if (is_float(53)) { 
    echo "is float\n"; 
} else { 
    echo "is not float\n"; //<---- This will be printed ! 
} 

Demo

+0

感谢您的快速回复。如果我想接受只有一个小数点的浮点数,该怎么办?就像我上面在我的问题中使用的例子一样? –

+0

以上完全是你正在寻找的。就我所知,一个有效的float将只有1个小数点;)我将添加一个演示供您使用。 –

+0

@ShankarDamodaran'1.2'怎么样?我们从文本字段获取字符串。 –

0

is_float将失败,字符串(例如get或post提交)。要检查值是否为数字,请使用is_numeric。要检查浮点值,强制转换为整数,并检查是否相等:

function is_float_value($value) { 
    return is_numeric($value) && ('' . (int)$value) !== "$value"; 
} 

echo is_float_value("53.1") ? "yes\n" : "no\n"; // yes 
echo is_float_value(53.1) ? "yes\n" : "no\n"; // yes 
echo is_float_value("0.0") ? "yes\n" : "no\n"; // yes 
echo is_float_value(0.0) ? "yes\n" : "no\n"; // no - internally represented as 0 
echo is_float_value("53") ? "yes\n" : "no\n"; // no 
echo is_float_value(53)  ? "yes\n" : "no\n"; // no 
0
$x='1.23'; 
if(preg_match('/^(\d)*\.(\d)+$/',$x)){ 
    echo 'yes'; 
}else{ 
    echo 'No'; 
} 

你可以用正则表达式检查,因为该值从文本字段接收将是字符串。