2012-05-16 3 views
2
complete = (Button) findViewById(R.id.complete); 
complete.setOnClickListener(new View.OnClickListener() { 

     String validNumber = ""; 

    public void onClick(View v){ 

     validNumber = phoneNumber.getText().toString(); 

     if (!validNumber.equals("")){ 

       final String phoneNumPattern = "^(?=.*[0-9]){10,11}$"; 
       Pattern pattern = Pattern.compile(phoneNumPattern); 
       Matcher matcher = pattern.matcher(validNumber);  

       if (matcher.matches() == true){ 
      Toast.makeText(PhoneNumActivity.this, "Success", Toast.LENGTH_SHORT).show();   
       } 
       else{ 
      Toast.makeText(PhoneNumActivity.this, "Failed", Toast.LENGTH_SHORT).show(); 
        } 
     } 
     else{ 
       Toast.makeText(PhoneNumActivity.this, "Failed", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

Я разрабатываю приложения безопасности, которым необходимо ввести действительный номер мобильного телефона, я устанавливаю шаблон выше, где пользователь может ввести номер с минимальной 10-значной цифрой и не более 11 цифр. Но выйти ошибкаКак подтвердить введенный номер мобильного телефона?

java.util.regex.PatternSyntaxException: Ошибка синтаксиса в регулярных выражениях шаблона рядом с индексом 13:

И еще один вопрос, могу ли я установить шаблон таким образом, что первые два цифры мобильного номера: 01xxxxxxxxxx?

+0

Помимо вашего вопроса регулярных выражений, то, возможно, стоит проверить, что ваша картина будет работать для любого формата телефона число в разных странах. – assylias

ответ

0

Проверка номера телефона может быть довольно сложной, но похоже, что это обсуждалось ранее в this thread.

0

Этот метод может помочь вам. Этот метод возвращает false, если строка содержит любые нечисловые символы.

public static boolean abcd(String str) 
    { 
     int x; 
     for(int j = 0 ; j < str.length() ; j++) 
     { 
      x = (int)str.charAt(j); 
      if(x < 48 || x > 57) 
      return false;  
     } 
     return true; 
    } 
2

Используйте EditText для ввода и дать ему этот атрибут XML:

android:inputType="phone" 

Пользователь обыкновение быть в состоянии поставить не допустимые символы внутри.

Для вашего шаблона из 01 вы просто должны проверить, если первые 2 символа являются «01»

if(phoneNumer.charAt(0)=='0'&&phoneNumber.charAt(1)=='1') 
Смежные вопросы