Android中EditText的InputFilter的正则表达式帮助

时间:2012-05-10 06:31:47

标签: android regex

我需要实现一个输入过滤器,以1234.35格式限制数字输入。也就是说,.之前的最多四位和两位小数。我正在使用这个regular expression模式:

Pattern.compile("[0-9]{0,4}+((\\.[0-9]{0,2})?)||(\\.)?");

这样可行,但是一旦我在编辑文本中输入数字并尝试编辑小数位前的值,我就无法编辑它们。我只能删除它们。

有什么问题?

1 个答案:

答案 0 :(得分:2)

根据你的说法,我觉得你看起来像是在做,我会用这个正则表达式:

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

它匹配'0-4位数',带或不带'小数点和两位数'。如果有小数点,则必须跟随一个或两个数字。例如:512341234.56.2.31都是有效的,并且由表达式匹配,但.123,{ {1}},1234.1234.56712345不匹配。

或者,要允许以小数结尾的数字(如..等),请使用此修改:

1234.