沦陷今生 发表于 2014-10-26 21:33:23

问个单纯PHP的问题 判断匹配大于0的正整数正则怎么写

想写个函数
大于0的正整数返回参数本身
否则返回false

function gt0($int){
        if(preg_match("/^\d*$/",$int))
        {
                return $int;
        }
        else{
                return false;
        }

}


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

Closer 发表于 2014-10-27 09:56:41

真是神奇,以前都沒注意過:
http://stackoverflow.com/questions/10461490/why-is-not-123-0123-in-java

一叶扁舟 发表于 2014-10-27 10:55:06

0开头是八进制,八进制0123换成十进制不就是83

xuyaokun 发表于 2014-11-1 14:49:10

楼主,if(preg_match("/^\d*$/",$int)) 你这写的对啊。
页: [1]
查看完整版本: 问个单纯PHP的问题 判断匹配大于0的正整数正则怎么写