preg_match for float(带检查存在小数部分)

时间:2016-03-13 06:31:45

标签: php regex

preg_match("#^\d+\.?\d*$#",$number);
// 1    - return 1
// 1.2  - return 1
// 2.25 - return 1
// 1.   - return 1 - but this not full number(there is no fractional part) 
//                   and should return 0

我的支票号1.存在问题,因为我得到1而不是0。 对于解决问题我尝试使用preg_match("#^\d+\.?(?=\d)\d*#",$number);但它不起作用,因为在后一种情况下,1返回0

请告诉我为什么preg_match("#^\d+\.?(?=\d)\d*#",$number);返回0号码1以及如何解决?

1 个答案:

答案 0 :(得分:2)

试试这个:

preg_match("#^\d+(\.\d+)?$#",$number);