Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 输入过滤器模式为';不允许十进制_Android_Regex_String Formatting_Android Input Filter - Fatal编程技术网

Android 输入过滤器模式为';不允许十进制

Android 输入过滤器模式为';不允许十进制,android,regex,string-formatting,android-input-filter,Android,Regex,String Formatting,Android Input Filter,我希望用户能够输入以下数字。 有效: ~0 ~0.00 ~12.34 ~301.7 ~4 无效 ~01 ~3.001 简而言之,它允许十进制数最多保留两位小数 这就是我一直想用的 Pattern mPattern = Pattern.compile("|(0|[1-9]+[0-9]*)(\\.[0-9]{1,2})?"); 当我尝试在字段中键入“.”时,它不会允许我 我认为问题在于,您的验证模式需要在输入时匹配输入。在您的情况下,只要您键入“.”,您的输入就无效。例如,如果您试图输入1.23,

我希望用户能够输入以下数字。
有效:
~0
~0.00
~12.34
~301.7
~4

无效
~01
~3.001

简而言之,它允许十进制数最多保留两位小数

这就是我一直想用的

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

当我尝试在字段中键入“.”时,它不会允许我

我认为问题在于,您的验证模式需要在输入时匹配输入。在您的情况下,只要您键入“.”,您的输入就无效。例如,如果您试图输入
1.23
,当您输入小数点时,您的输入将变为
1.
,这与您的regexp不匹配


尝试将表达式中的
{1,2}
替换为
{0,1,2}
,以允许尾随“.”。

是否提供了允许数值和十进制值的字段类型?@hwnd您的意思是使用
android:inputType=“numberDecimal”
?无论我是否在xml中声明,它的行为都是相同的。