Мое приложение принимает идентификатор пользователя от пользователя в качестве ввода, идентификатор пользователя является буквенно-цифровым, то есть только первый символ (a-z), другая часть является числовой. Как я могу проверить ввод этого типа (например, G34555)?Как проверить значение, введенное в EditText, является aplhanumeric или нет?
2
A
ответ
0
я решил вопрос с помощью простого string
функции matches
String str="mystring";
str.matches("[a-zA-Z][0-9]+");
3
Используйте регулярное выражение. Это должно сделать это при условии, первую буквы может быть верхним или нижним регистр:
Pattern p = Pattern.compile("[a-zA-Z][0-9]+");
Matcher m = p.matcher("some text you want");
boolean isAlphaNum = m.matches();
3
http://osdir.com/ml/Android-Developers/2009-11/msg02501.html кажется более достойное решение, оно не позволяет вводить символы, которые не принимаются.
код из ссылки:
InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (!Character.isLetterOrDigit(source.charAt(i))) {
return "";
}
}
return null;
}
};
edit.setFilters(new InputFilter[]{filter});
он не работает, никогда не возвращает истину. какие-либо предложения? – rob