我希望用户能够输入以下数字。
有效期:
〜0
〜0.00
〜12.34
〜301.7
〜4
无效
〜01
~3.001
简而言之,它允许十进制数字最多两位小数。
这就是我一直在尝试使用的
Pattern mPattern = Pattern.compile("|(0|[1-9]+[0-9]*)(\\.[0-9]{1,2})?");
当我尝试输入“。”时在现场,它不会让我。
答案 0 :(得分:0)
我认为问题在于您的验证模式需要在输入时匹配输入 。在您的情况下,只要您输入"。",您的输入就会无效。例如,如果您尝试输入1.23
,当您输入小数点时,您的输入将变为1.
, 与您的正则表达式匹配。
尝试将{1,2}
替换为表达式中的{0,1,2}
以允许尾随"。"。