Saltar al contenido

Validación de número de teléfono Android

La guía paso a paso o código que encontrarás en este post es la resolución más rápida y válida que encontramos a tus dudas o problema.

Solución:

Usar isGlobalPhoneNumber() método de PhoneNumberUtils para detectar si un número es un número de teléfono válido o no.

Ejemplo

System.out.println("....g1..."+PhoneNumberUtils.isGlobalPhoneNumber("+912012185234"));
System.out.println("....g2..."+PhoneNumberUtils.isGlobalPhoneNumber("120121852f4"));

El resultado de la primera declaración de impresión es true mientras que el resultado de la segunda es false porque el segundo número de teléfono contiene f.

Dadas las reglas que especificó:

hasta 13 de longitud e incluyendo carácter + delante.

(y también incorporando la longitud mínima de 10 en su código)

Vas a querer una expresión regular que se vea así:

^+[0-9]10,13$

Con las longitudes mínima y máxima codificadas en la expresión regular, puede eliminar esas condiciones de su if() cuadra.

Fuera de tema: sugeriría que un rango de 10 a 13 es demasiado limitante para un campo de número de teléfono internacional; es casi seguro que encontrará números válidos que sean más largos y más cortos que este. Sugeriría un rango de 8 a 20 para estar seguro.

[EDIT]

OP indica que la expresión regular anterior no funciona debido a la secuencia de escape. No estoy seguro de por qué, pero una alternativa sería:

^[+][0-9]10,13$

[EDIT 2]

OP ahora agrega que el + El signo debe ser opcional. En este caso, la expresión regular necesita un signo de interrogación después de la +por lo que el ejemplo anterior ahora se vería así:

^[+]?[0-9]10,13$

Para validar números de teléfono para una región específica en Android, use libPhoneNumber de Google y el siguiente código como ejemplo:

public boolean isPhoneNumberValid(String phoneNumber, String countryCode)

    //NOTE: This should probably be a member variable.
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();

    try 
    
        PhoneNumber numberProto = phoneUtil.parse(phoneNumber, countryCode);
        return phoneUtil.isValidNumber(numberProto);
     
    catch (NumberParseException e) 
    
        System.err.println("NumberParseException was thrown: " + e.toString());
    

    return false;

valoraciones y reseñas

Agradecemos que quieras corroborar nuestra función fijando un comentario o dejando una valoración te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *