EditText正确验证

时间:2012-06-08 15:02:02

标签: android regex android-edittext

我想让EditText进行一些简单的验证。我希望它以逗号前的8个符号和逗号后的2个符号获得十进制数。

我在这里找到了一些例子,但我无法弄清楚他们为什么不为我工作。我试图设置InputFilter,但我无法创建有效的正则表达式。

public class DecimalDigitsInputFilter implements InputFilter {

    Pattern mPattern;

    public DecimalDigitsInputFilter(final int digitsBeforeZero,
            final int digitsAfterZero) {
        mPattern = Pattern.compile("place for my regex");
    }

    @Override
    public CharSequence filter(final CharSequence source, final int start,
            final int end, final Spanned dest, final int dstart,
            final int dend) {

        Matcher matcher = mPattern.matcher(dest);
        if (!matcher.matches()) {
            return "";
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

TextWatcher可以替代你。 参见:

Android TextWatcher.afterTextChanged vs TextWatcher.onTextChanged

http://www.androidadb.com/class/android/text/TextWatcher.java.html

这样您就不必使用正则表达式,并且可以在文本显示之前检查文本。