2010-04-18 3 views
2

Мое приложение принимает идентификатор пользователя от пользователя в качестве ввода, идентификатор пользователя является буквенно-цифровым, то есть только первый символ (a-z), другая часть является числовой. Как я могу проверить ввод этого типа (например, G34555)?Как проверить значение, введенное в EditText, является aplhanumeric или нет?

ответ

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(); 
+0

он не работает, никогда не возвращает истину. какие-либо предложения? – rob

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});