正则表达式或浮点数

时间:2010-08-04 12:23:02

标签: php regex pcre

我的正则表达式不适用于单个数字

/^[0-9]{1,7}\.?[0-9]{1,2}$/

我需要它来处理无符号数字:

1 (single digit numbers, without fractions) - currently it fails on them
1.0; 0.31 (floating point numbers)

分数前的数字可以是1-7位数;分数1-2之后。

谢谢!

2 个答案:

答案 0 :(得分:6)

您指定必须有1-7位数字,然后是可选的小数点,然后是1-2位数字。尝试:

/^[0-9]{1,7}(?:\.[0-9]{1,2})?$/

请注意,这不允许尾随小数位(即“1”)。如果你想允许这样做,这应该有效:

/^[0-9]{1,7}(?:\.[0-9]{0,2})?$/

答案 1 :(得分:1)

小数点和后面的数字可选。 e.g。

/^[0-9]{1,7}(\.[0-9]{1,2})?$/

这样你就可以得到1-7位 1-7位数字后跟一个小数点后跟1或2位数如果你有数字跟随小数点,但没有其他数字无效。