Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中整数值和浮点值的验证_Php - Fatal编程技术网

php中整数值和浮点值的验证

php中整数值和浮点值的验证,php,Php,我正在检查整数和浮点的有效性。 preg('/^[0-9]+([0-9]+)?$/',$str) 这个很好用 12,12.05 但对我来说不是 有什么建议吗 提前感谢,, 库马尔。是的,试试这个: if((int) $str != $str) { //error } if((float) $str != $str) { //error } 这应该可以做到,我想它比正则表达式工作得更快。另外,您可以在(float)$str之后检查另一个错误,等等 我敢打赌,对于更复杂的验证,正

我正在检查整数和浮点的有效性。 preg('/^[0-9]+([0-9]+)?$/',$str) 这个很好用 12,12.05 但对我来说不是

有什么建议吗

提前感谢,, 库马尔。

是的,试试这个:

if((int) $str != $str)
{
    //error
}

if((float) $str != $str)
{
    //error
}
这应该可以做到,我想它比正则表达式工作得更快。另外,您可以在
(float)$str之后检查另一个错误,等等

我敢打赌,对于更复杂的验证,正则表达式必须使用标准例程编写一些代码块,例如电子邮件验证、掩码(模式)输入等。

是的,请尝试以下方法:

if((int) $str != $str)
{
    //error
}

if((float) $str != $str)
{
    //error
}
这应该可以做到,我想它比正则表达式工作得更快。另外,您可以在
(float)$str之后检查另一个错误,等等

我敢打赌,在更复杂的验证中,正则表达式必须使用标准例程编写一些代码块,例如电子邮件验证、掩码(模式)输入等等。

preg('/^[0-9]*(\.[0-9]+)?$/',$str)
+
表示元素将重复一次或多次,
*
表示元素将重复零次或多次。

请这样做

preg('/^[0-9]*(\.[0-9]+)?$/',$str)

+
表示元素将重复一次或多次,
*
表示元素将重复零次或多次。

您可以使用和的组合

然而,这两个问题几乎都包含在

例如:

<?php
if (is_float(27.25)) {
    echo "is float\n";
} else {
    echo "is not float\n";
}
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>
is float
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

是浮动的
布尔(假)
布尔(假)
布尔(真)
布尔(真)
布尔(假)
例如:

<?php
if (is_int(23)) {
    echo "is integer\n";
} else {
    echo "is not an integer\n";
}
var_dump(is_int(23));
var_dump(is_int("23"));
var_dump(is_int(23.5));
var_dump(is_int(true));
?>
is integer
bool(true)
bool(false)
bool(false)
bool(false)

是整数
布尔(真)
布尔(假)
布尔(假)
布尔(假)

您可以使用和的组合

然而,这两个问题几乎都包含在

例如:

<?php
if (is_float(27.25)) {
    echo "is float\n";
} else {
    echo "is not float\n";
}
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>
is float
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

是浮动的
布尔(假)
布尔(假)
布尔(真)
布尔(真)
布尔(假)
例如:

<?php
if (is_int(23)) {
    echo "is integer\n";
} else {
    echo "is not an integer\n";
}
var_dump(is_int(23));
var_dump(is_int("23"));
var_dump(is_int(23.5));
var_dump(is_int(true));
?>
is integer
bool(true)
bool(false)
bool(false)
bool(false)

是整数
布尔(真)
布尔(假)
布尔(假)
布尔(假)

您可以使用PHP的is_floatis_int函数来验证数字。

您可以使用PHP的is_floatis_int函数来验证数字。

我建议在PHP中使用
is_numeric
函数来验证数字。比
regex
函数

是数值的
对所有这些项目返回true:

  • 整数<代码>$s=123
  • 包含整数
    $s='123'的字符串
  • 浮点整数<代码>$s=123.456
  • 带前导零的浮点整数
    $s='.456'
  • 负数
    $s='-.456'

  • 你可以看到它的作用。

    我建议
    是PHP中的数值
    函数,它比
    regex
    函数具有更好的性能

    是数值的
    对所有这些项目返回true:

  • 整数<代码>$s=123
  • 包含整数
    $s='123'的字符串
  • 浮点整数<代码>$s=123.456
  • 带前导零的浮点整数
    $s='.456'
  • 负数
    $s='-.456'

  • 您可以看到它的作用。

    您需要转义
    ,此正则表达式匹配空字符串。您需要转义
    ,此正则表达式匹配空字符串。