我想检查用户是否输入正整数.
1 = true
+10 = true
.1 = false
-1 = false
10.5 = false
Just a positive number.
No characters.
No special character.
No dot.
No minus sign.
Run Code Online (Sandbox Code Playgroud)
我尝试了is_int()函数,但即使在正整数上它也返回false.有一个字符串到int问题?
Yac*_*oby 34
这样的事情应该有效.将值转换为整数并将其与其原始形式进行比较(因为我们使用==而不是===PHP在检查相等时忽略该类型).然后我们知道它是一个整数,我们测试它是> 0.(根据你可能想要的积极的定义>= 0)
$num = "20";
if ( (int)$num == $num && (int)$num > 0 )
Run Code Online (Sandbox Code Playgroud)
Gor*_*don 30
尝试本机过滤功能*
filter_var($value, FILTER_VALIDATE_INT, array(
'options' => array('min_range' => 1)
));
Run Code Online (Sandbox Code Playgroud)
*如果您只想确保输入字符串包含任意长度的数字序列,请使用带有[0-9]或[\ d + +]的正则表达式
示例filter_var:
var_dump( filter_var(1, FILTER_VALIDATE_INT) ); // int(1)
var_dump( filter_var('1', FILTER_VALIDATE_INT) ); // int(1)
var_dump( filter_var('+10', FILTER_VALIDATE_INT) ); // int(10)
var_dump( filter_var(.1, FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var('.1', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var(-1, FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1))) ); // bool(false)
var_dump( filter_var('-1', FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1))) ); // bool(false)
var_dump( filter_var('2147483648', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var('0xFF', FILTER_VALIDATE_INT) ); // bool(false)
var_dump( filter_var(0xFF, FILTER_VALIDATE_INT) ); // int(255)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22935 次 |
| 最近记录: |