求个正则表达式,验证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函数