用到循环,就很难最简单了埃
给你写了个,看下行不行:
$str=\'123.123\';
var_dump(isnumber($str));
functionisnumber($str){
$number=array(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\');
$mark=array(\'\',\'-\');
$dotnum=0; //小数点个数
//蛋疼写法,通过遍历字符串的每个字符,判断字符串是否为有效数字
for($i=0;$istrlen($str);$i){
if($str[$i]==\'.\'){
$dotnum;
if($dotnum1)returnfalse; //超过一个就返回错误
continue; //如果是小数点,后面的不用判断了
}
if(!in_array($str[$i],$mark) //判断数字的组成部分
if(in_array($str[$i],$mark) //保证加减号必须是第一位
}
returntrue;
}
|