目前我正在使用过滤器(用于格式化货币),但是,用户仍然可以输入前导零:
00000334.43 // Is accepted but shouldn't be..
03000334.43 // I don't want a leading zero unless followed by a .
如果它是 a 之前的零,我只想接受前导零.
。
我知道如果使用空白editText
,这是不可能的,所以我想删除零,除非用户在.
之后输入 a,在那个用例中,例如:
User types 0 // 0 - Ok
User types . // 0. - This is fine
0 // 0 - Ok
4 // 04 - Not ok, 0 should be removed from the text edit.
我在扩展DigitsKeyListener
类的自定义类中执行此操作 - 使用后者的filter()
方法:
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart, int dend)
{
// How can I achieve this inside the filter method?
}
到目前为止我已经尝试过:
replaceFirst()
- 我尝试使用此正则表达式 -.replaceFirst("^0+(?!$)", "")
但是在键入后尝试在开头插入数字时会导致问题。我也不确定如何在过滤器方法中正确使用它。
任何帮助表示赞赏。