用户
 找回密码
 入住 CI 中国社区
搜索
查看: 12058|回复: 4
收起左侧

[讨论/交流] 问个单纯PHP的问题 判断匹配大于0的正整数正则怎么写

[复制链接]
发表于 2014-10-26 21:33:23 | 显示全部楼层 |阅读模式
想写个函数
大于0的正整数返回参数本身
否则返回false

PHP复制代码
function gt0($int){
        if(preg_match("/^[1-9]\d*$/",$int))
        {
                return $int;
        }
        else{
                return false;
        }
 
}
复制代码


PHP复制代码
echo gt0('-123'),"<br />\n";
echo gt0(-123),"<br />\n";
echo gt0('123.321'),"<br />\n";
echo gt0(123.321),"<br />\n";
echo gt0('-123.321'),"<br />\n";
echo gt0(-123.123),"<br />\n";
echo gt0('w123'),"<br />\n";
echo gt0('123w'),"<br />\n";
echo gt0('12w3'),"<br />\n";
echo gt0('0'),"<br />\n";
echo gt0(0),"<br />\n\n";
 
echo gt0('0123'),"<br />\n";
echo gt0(0123),"跪在了这里 怎么回事啊?竟然输出83<br />\n";
echo gt0('01'),"<br />\n";
echo gt0(01),"<br />\n";
echo gt0(''),"<br />\n";
echo gt0('1'),"<br />\n";
echo gt0('123'),"<br />\n";
echo gt0(1),"<br />\n";
echo gt0(123),"<br />\n";
echo gt0(10),"<br />\n";
echo gt0(1023),"<br />\n";
复制代码


发表于 2014-10-27 09:46:48 | 显示全部楼层
echo 0123;    //结果:83
发表于 2014-10-27 09:56:41 | 显示全部楼层
真是神奇,以前都沒注意過:
http://stackoverflow.com/questio ... ot-123-0123-in-java
发表于 2014-10-27 10:55:06 | 显示全部楼层
0开头是八进制,八进制0123换成十进制不就是83
发表于 2014-11-1 14:49:10 | 显示全部楼层
楼主,if(preg_match("/^[1-9]\d*$/",$int)) 你这写的对啊。

本版积分规则