如何用Regex检查有效的小数点数字?

2022-03-29 00:00:00 regex php preg-match

如何使用下面的字符串检查数字是否有效。

最后2位可以包含小数值,也可以不包含。

下面是我已经使用preg_match尝试过的代码,但未获得任何成功

$newPrice = "2,264.00"; or //  $newPrice = "264.00"; 

 if (!preg_match('/^[+-][0-9]+(,[0-9]+)?%?$/', $newPrice))
{                
    echo "not valid";
 }else{                    
       echo "valid";
}
exit();

以上两种价格按照允许的格式都是正确的。


解决方案

正则表达式分为3部分;

[0-9]{1,3}     1-3 digits
(,[0-9]{3})*   An optional repeated part of a comma + 3 digits
(.[0-9]{2})?  An optional part of a decimal dot and 2 digits

这可以写为;

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

相关文章