如何在十进制前添加3位数的正浮点数验证?

时间:2014-04-03 05:56:06

标签: php regex yii

我已经看到许多浮点数验证链接,但没有一个用于精确度。

only floating point number validation

如果输入为1234.31或,我希望字段显示错误。 但不适用于123.5555555或.3433或.9022。我需要指定规则在小数点前得到0到3位数。我试过了

/^[^+-][0-9]{0,3}[.]?[0-9]{0,2}/

但它不起作用。

2 个答案:

答案 0 :(得分:2)

使用此正则表达式:

/^\d{0,3}\.\d+/

但如果您想使用正则表达式,请按以下方式修改:

/^[^+-][0-9]{0,3}[.]?[0-9]+/

您的原始正则表达式无效,因为您只能将其匹配最多2个小数位。正则表达式中的+表示1或多个。

答案 1 :(得分:0)

你几乎拥有它

/^([0-9]{0,3})?\.[0-9]+|[0-9]+$/

并使用类似

的内容
if(!preg_match("^([0-9]{0,3})?\.[0-9]+|[0-9]+$/", $float)){}