暂时研究到这个:
^([-+]?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函数