2015-04-28 2 views
0

я хочу, чтобы проверить ниже номер телефона с matches, номер телефона Условие:Java проверка номер телефона и спичка

  1. старт с 0 или 9
  2. содержания должно быть между 0 и 9
  3. номера телефона должны быть 10 символов

Я пробовал:

String mobile_number = "9371236569"; 
if(!TextUtils.isEmpty(mobile_number) && 
    mobile_number.matches("^[0][9][0-9]{10}$")) { 
} 

Для номера 9371236569 не работает мой код и вернуть ложь,

+0

"[09] [0-9] {9}" это регулярное выражение может использоваться –

ответ

3

[] Соответствует любому одному символу в скобках, за исключением диапазона с -.

mobile_number.matches("^[09][0-9]{9}$")

^[09] начать с eighter 0 или 9.
[0-9]{9} остальных 9 цифр бушующих 0-9.

1
public static boolean validateMobile(String moblieNumber) { 
    boolean check; 
    Pattern p; 
    Matcher m; 
    String MobilePattern = "[0-9]{10}"; 
    p = Pattern.compile(MobilePattern); 

    m = p.matcher(moblieNumber); 
    check = m.matches(); 
    return check; 
} 
+1

Пожалуйста, добавьте более подробную информацию, так как только код и попробуйте ответить на этот вопрос, объясните причину, по которой они задают вопрос. – abarisone

2

Используйте это регулярное выражение:

"^(0|9)[0-9]{9}$"

Объяснение:

^ матч начала строки

(0|9) соответствует одной цифре либо 0 или 9

[0-9]{9} матч 9 цифр в диапазоне 0-9

$ конца матча строки

+0

Спасибо, сэр, '9371236569' - 10 символов, почему вы пишете' {9} ', после начала с' 0' или '9' вычислить его? –

+0

Первая цифра обрабатывается специально, потому что она может быть только 0 или 9. Затем остальные 9 цифр обрабатываются отдельно, чтобы дать всего 10. – samgak

+0

[0 | 9] означает либо 0, | или 9. здесь '|' ведет себя как одиночный символ, а не 'OR'. вход __' | 371236561'__ возвращает __true__ – Bharatesh

Смежные вопросы