Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要实现一个输入过滤器来限制格式中的数字输入1234.35。也就是说,最多前四位.和两位小数。我正在使用这个正则表达式模式:
1234.35
.
Pattern.compile("[0-9]{0,4}+((\\.[0-9]{0,2})?)||(\\.)?");
这可行,但是一旦我在编辑文本中输入一个数字并尝试编辑小数位前的值,我就无法编辑它们。我只能删除它们。
怎么了?
根据你所说的,我认为你正在尝试做,我会使用这个正则表达式:
^(\d{0,4})(\.\d{1,2})?$
它匹配“0-4 位”,后面有或没有“一个小数点和两个数字”。如果有小数点,则后面必须有一位或两位数字。例如:5, 1234, 1234.56, .2, and.31都是有效的并且被表达式匹配,但是.123, 1234., 1234.567, 12345, and.不匹配。
5
1234
1234.56
.2
.31
.123
1234.
1234.567
12345
或者,要允许以小数结尾的数字(如.、1234.等),请使用以下修改:
^(\d{0,4})(\.(\d{1,2})?)?$