相关疑难解决方法(0)

php filter_var在FILTER_VALIDATE_INT上失败,为零

我很困惑以下引发异常:

if (!filter_var(0, FILTER_VALIDATE_INT))
    throw new Exception("Non numeric field passed " . $field . " when expecting a number: " . $variable . " passed instead");
Run Code Online (Sandbox Code Playgroud)

什么积极的工作好吗?我试过intval(0)但仍然没有.是零而不是整数?

php

6
推荐指数
2
解决办法
3296
查看次数

正则表达式为有效的32位有符号整数

我很确定这个网站上还没有真正回答过.对于一劳永逸,最小的正则表达式匹配数字字符串,该字符串在32位有符号整数范围内-2147483648,范围为2147483647.

必须使用正则表达式进行验证 - 这是我唯一可用的选项.

我试过了

\d{1,10}
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将其限制在有效的数字范围内.


为了帮助开发正则表达式,它应该匹配:

-2147483648
-2099999999
-999999999
-1
0
1
999999999
2099999999
2147483647
Run Code Online (Sandbox Code Playgroud)

它不应该匹配:

-2147483649
-2200000000
-11111111111
2147483648
2200000000
11111111111
Run Code Online (Sandbox Code Playgroud)

我已经设置了一个在线实时演示(在rubular上),我的尝试和上面的测试用例.


注意:将接受有效的最短正则表达式.不考虑正则表达式的效率(除非有最短长度的平局).

regex validation integer

5
推荐指数
1
解决办法
3721
查看次数

标签 统计

integer ×1

php ×1

regex ×1

validation ×1