-4

我的应用程序中有一个EditText我需要检查文本是否像,

##-##-##

“#”可以是 2 个一组的字母或数字,我该怎么做?

4

3 回答 3

3

你可以使用这个regex:-

String regex = "[a-zA-Z0-9]{2}-{1}[a-zA-Z0-9]{2}-{1}[a-zA-Z0-9]{2}";
System.out.println(str.matches(regex));
于 2013-04-29T08:44:08.853 回答
0

当文本更改时检查!

EditText etSearch this.etSearch = (EditText) findViewById(R.id.id_edittext);
etSearch.addTextChangedListener(new TextWatchControl());


private class TextWatchControl implements TextWatcher {

        @Override
        public void afterTextChanged(Editable s) {
             String test = etSearch.getText().toString();
            if (test.matches("[0-9]{2}-{1}[0-9]{2}-{1}[0-9]{2}""))
                 //true
            else
                 //false
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
        }


    }
于 2013-04-29T08:49:04.497 回答
0

您应该转换用户输入的文本并对其运行正则表达式检查。

这是Sun 编写的 Java 正则表达式教程。

要从EditText字段中获取文本并将其转换为字符串,请使用以下命令:

EditText editText = (EditText)findViewById(R.id.your_edit_field_id);
String message = editText.getText().toString();
于 2013-04-29T08:44:24.870 回答