Programa Java para validar números de teléfono utilizando la biblioteca libphonenumber de Google

La validación de números de teléfono es un requisito previo común en las aplicaciones web, móviles o de escritorio actuales, pero Java no tiene un método integrado para llevar a cabo este tipo de validación común. Entonces, tenemos que usar algunas bibliotecas de código abierto para realizar dicha validación. Una de esas bibliotecas es la biblioteca de números de teléfono de Google. Ayuda a verificar cualquier número de teléfono, ya sea extranjero, específico de la India o específico de cualquier país.

También podemos usar expresiones regulares para validar los números de teléfono, pero se requieren algunas habilidades para escribir expresiones tan complejas y luego la prueba sería una tarea interminable.

libphonenumber es una biblioteca de código abierto de Google para formatear, analizar y validar números de teléfono internacionales. Contiene muchos métodos para lograr dicha funcionalidad. Algunos de ellos se discuten a continuación:

Tipo de retorno

Método

Descripción

Cuerda

format(Número de teléfono.Número de teléfono,

PhoneNumberUtil.PhoneNumberFormat numberFormat)

Utiliza las reglas predeterminadas para dar formato a un número de teléfono en el formato especificado.
Cuerda formatNumberForMobileDialing(Phonenumber.PhoneNumber number, java.lang.String regionCallingFrom, boolean withFormatting) Devuelve el número en una string formateada de modo que se pueda marcar desde un teléfono celular en esa región. 
booleano isMobileNumberPortableRegion(java.lang.String regionCode) Si la región pasada como argumento admite la portabilidad de números móviles, el método devuelve verdadero.
booleano isNumberMatch(Phonenumber.PhoneNumber firstNumberIn, Phonenumber.PhoneNumber secondNumberIn) Toma dos números de teléfono y los verifica para la igualdad
booleano isPossibleNumber(java.lang.CharNúmero de secuencia, java.lang.String regionDialingFrom) Verifique que un número de teléfono sea un número posible dado en forma de string y la región desde la que se puede marcar el número.
booleano isValidNumberForRegion(Phonenumber.PhoneNumber number, java.lang.String regionCode) Comprueba si el número dado es válido para una región en particular
booleano isValidNumber(Phonenumber.PhoneNumber number) Valida si un número de teléfono coincide con un patrón específico
booleano canBeInternationallyDialled(Phonenumber.PhoneNumber número) Devuelve verdadero en caso de que el número se pueda marcar desde fuera de la región especificada
En t getCountryCodeForRegion(java.lang.String regionCode) Devuelve el código de llamada del país para una región específica
PhoneNumberUtil.PhoneNumberType getNumberType(Phonenumber.PhoneNumber number) Este método devuelve el tipo de número basado en el número mismo. Por ejemplo, Toll-Free, Mobile, FixedLine, etc.

 Esta es una rica biblioteca con aún más funciones de utilidad y se encarga de gran parte de las necesidades de nuestro programa.

A continuación se muestra la implementación de Java para validar números de teléfono utilizando la biblioteca libphonenumber de Google. Aquí usaremos Eclipse IDE.

Paso 1: crear un proyecto Maven

Para empezar, primero cree un Proyecto Maven en Eclipse. La razón detrás de la creación de un Proyecto Maven en lugar de un Proyecto Java normal es que la biblioteca libphonenumber está presente en el Repositorio Maven, por lo que debemos usarla como una dependencia en nuestro proyecto.




Deje todo como predeterminado. El Id. de artefacto será el nombre de su proyecto Maven.

Paso 2: agregar la dependencia

Una vez que haya creado el Proyecto Maven, agregue la dependencia libphonenumber en el archivo pom.xml. Tan pronto como guarde el archivo, la biblioteca se descargará para su uso sin conexión.

XML

<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.Demo</groupId>
  <artifactId>DemoProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
      <dependency>
        <groupId>com.googlecode.libphonenumber</groupId>
        <artifactId>libphonenumber</artifactId>
        <version>8.12.16</version>
      </dependency>
  </dependencies>
</project>

Paso 3: Creación de la clase de controlador

Ahora, simplemente cree una clase Java para usar las funcionalidades de esta biblioteca.

Java

import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
  
public class GFG {
  
    public static void main(String args[])
    {
        // creating an array of random phone numbers
        String[] phonenumbers
            = { "+91 94483 76473", "1800 425 3800",
                "+91 83944 7484", "0294 2424447" };
  
        // iterating over each number to validate
        for (String phone : phonenumbers) {
            if (isPhoneNumberValid(phone)) {
                System.out.println(phone + " is valid.");
            }
            else {
                System.out.println(phone
                                   + " is not valid.");
            }
        }
    }
  
    // this method return true if the passed phone number is
    // valid as per the region specified
    public static boolean isPhoneNumberValid(String phone)
    {
        // creating an instance of PhoneNumber Utility class
        PhoneNumberUtil phoneUtil
            = PhoneNumberUtil.getInstance();
        
        // creating a variable of type PhoneNumber
        PhoneNumber phoneNumber = null;
  
        try {
            // the parse method parses the string and
            // returns a PhoneNumber in the format of
            // specified region
            phoneNumber = phoneUtil.parse(phone, "IN");
            
            // this statement prints the type of the phone
            // number
            System.out.println(
                "\nType: "
                + phoneUtil.getNumberType(phoneNumber));
        }
        catch (NumberParseException e) {
            
            // if the phoneUtil is unable to parse any phone
            // number an exception occurs and gets caught in
            // this block
            System.out.println(
                "Unable to parse the given phone number: "
                + phone);
            e.printStackTrace();
        }
  
        // return the boolean value of the validation
        // performed
        return phoneUtil.isValidNumber(phoneNumber);
    }
}

Producción:

Type: MOBILE
+91 94483 76473 is valid.
Type: TOLL_FREE
1800 425 3800 is valid.
Type: UNKNOWN
+91 83944 7484 is not valid.
Type: FIXED_LINE
0294 2424447 is valid.

Publicación traducida automáticamente

Artículo escrito por raghav14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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