正则表达式,可以断定数字字母和其它字符的ascii号  大于多少小于多少的才取据我所知,直接取数字的函数,php中还没有,不过你可以自己写一下,也不太难

解决方案 »

  1.   

    啥都不用。PHP本来就有字符数字的戏法。变个给你看<?php
    $foo = "0";  // $foo is string (ASCII 48)
    $foo += 2;   // $foo is now an integer (2)
    $foo = $foo + 1.3;  // $foo is now a float (3.3)
    $foo = 5 + "10 Little Piggies"; // $foo is integer (15)
    $foo = 5 + "10 Small Pigs";     // $foo is integer (15)
    ?> 看明白不?如果你把一个开头是数字的字符串当数字变量处理,它自动就变成了开头的数字,正则都不用。
    想玩戏法玩的更神奇就看看PHP手册中PHP字符串转换,和类型戏法那两节。另外给个惊喜,MYSQL也支持这样的戏法
      

  2.   

    用正则,直接匹配[0-9]+出的就OK了,取一个用 preg_match 取多个用 preg_match_all
      

  3.   

    <?php
    echo getnum("5121中国营农场");
    echo "<br />";
    echo getnum("[1234]2515SDSDSAS");function getnum($val)
    {
            preg_match("/\[([^\]]+)/", $val, $temp);  
            $val = is_numeric($temp[1]) ? $temp[1] : ereg_replace("[^0-9]","",$val); 
            return $val;
    }
    ?>