求个正则表达式,验证1个数字,整数10位以内,小数5位以内

1个回答

  • 暂时研究到这个:

    ^([-+]?d{1,10})(.d{1,5})?$

    请LZ看看是否适合.

    说明一下:

    [-+]? 匹配正负号

    d{1,10} 匹配1到10位数字

    (.d{1,5})? 匹配小数,如果有小数点,则必须接1到5位的数字,只有小数点则不匹配

    ^和$当然就是匹配开始结束了

    另外,LZ可以下个RegexTester(正则表达式测试器),很不错的工具

    顺表也贴上测试代码吧(PHP)

    function check($num) { //检查函数

    x09$reg = '/^([-+]?d{1,10})(.d{1,5})?$/'; //正则表达式

    x09if(preg_match($reg, $num)) {

    x09x09echo 'the num: ' . $num . ' ---- yes!

    ';

    x09} else {

    x09x09echo 'the num: ' . $num . ' ---- no!

    ';

    x09}

    }

    $numbers = array( //一些测试数据

    x091 => -0.14,

    x092 => +0.14,

    x093 => 1234567891,

    x094 => 12345678912,

    x095 => 123456.123,

    x096 => 123456,123456,

    x097 => 1234.,

    x098 => 0000.12345,

    x099 => 0.123456

    );

    array_walk($numbers, 'check'); //对个数组中的每个值执行check函数