我需要实现一个输入过滤器,以1234.35
格式限制数字输入。也就是说,.
之前的最多四位和两位小数。我正在使用这个regular expression模式:
Pattern.compile("[0-9]{0,4}+((\\.[0-9]{0,2})?)||(\\.)?");
这样可行,但是一旦我在编辑文本中输入数字并尝试编辑小数位前的值,我就无法编辑它们。我只能删除它们。
有什么问题?
答案 0 :(得分:2)
根据你的说法,我觉得你看起来像是在做,我会用这个正则表达式:
^(\d{0,4})(\.\d{1,2})?$
它匹配'0-4位数',带或不带'小数点和两位数'。如果有小数点,则必须跟随一个或两个数字。例如:5
,1234
,1234.56
,.2
和.31
都是有效的,并且由表达式匹配,但.123
,{ {1}},1234.
,1234.567
和12345
不匹配。
或者,要允许以小数结尾的数字(如.
,.
等),请使用此修改:
1234.