问个单纯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";
echo 0123; //结果:83 真是神奇,以前都沒注意過:
http://stackoverflow.com/questions/10461490/why-is-not-123-0123-in-java 0开头是八进制,八进制0123换成十进制不就是83 楼主,if(preg_match("/^\d*$/",$int)) 你这写的对啊。
页:
[1]