值小于99999999.9999

时间:2012-11-22 13:56:17

标签: java regex

Pattern regex = Pattern.compile("^\\d{0,8}\\.\\d{0,4}$");

正在运行,但如果我输入值,例如5000,它应该可以工作。基本上有效值应等于或小于“99999999.9999”。

如果值为“123456789”则无效。

小数点不是强制性的。

请帮忙。

2 个答案:

答案 0 :(得分:4)

由于每个浮点数都有许多不同的表示形式(考虑100100.01e2等),我建议将数字解析为double ,然后使用数字比较来确定它是否在所需范围内。

答案 1 :(得分:3)

使小数部分可选

^\d{0,8}(\.\d{0,4})?$

但我认为你的意思是只有12345678但如果不是

^\d{0,9}(\.\d{0,4})?$

但我建议在小数点后输入至少1个数字,这样如果用户尝试输入123.则会失败

^\d{0,9}(\.\d{1,4})?$