如何用Regex检查有效的小数点数字?
如何使用下面的字符串检查数字是否有效。
最后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})?$/
相关文章