带有InputFilter的java 安卓自定义正则表达式
我想在我的编辑文本中检查这个正则表达式。五个符号后的文本必须添加点,点后应输入两个符号,例如XXXXX。XX(最大金额99999.99) 我编写了自定义InputFilter,但它不能正常工作。这是一个密码
class DecimalDigitsInputFilter implements InputFilter {
Pattern mPattern;
public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
mPattern=Pattern.compile("[0-9]*" + (digitsBeforeZero-1) + "}+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?");
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
Matcher matcher=mPattern.matcher(dest);
if(!matcher.matches())
return "";
return null;
}
}
我是这样使用这个类的
数量价值。setFilters(new InputFilter[]{new DecimalDigitsInputFilter(5,2)})
有谁能告诉我我的代码中有什么错误,或者什么是创建这种正则表达式的最佳方法吗。 谢谢
共 (0) 个答案