Implementación de validación de números telefónicos usando el paquete Regexp de Go

Para validar números telefónicos, hay varios criterios que podemos considerar. Estos criterios pueden variar según el país y el formato específico de los números, pero aquí te dejo una guía general:

  1. Longitud: Verificar que el número tenga una cantidad adecuada de dígitos (normalmente entre 10 y 15 dígitos).

  2. Caracteres Válidos: El número debe contener solo dígitos y, opcionalmente, caracteres como paréntesis, guiones y espacios.

  3. Código de País: Verificar la presencia de un código de país válido (por ejemplo, +1 para Estados Unidos, +57 para Colombia).

  4. Formato: Asegurarse de que el número siga un formato esperado (por ejemplo, +57 300 123 4567 o (300) 123-4567).

Aquí tienes un pseudocódigo en Go para validar números telefónicos:

package main

import (
    "fmt"
    "regexp"
)

func isValidPhoneNumber(phoneNumber string) bool {
    // Patrón de expresión regular para la validación del número telefónico
    phonePattern := `^\+?[0-9]{1,3}?[-. \(\)]?[0-9]{1,4}?[-. \(\)]?[0-9]{1,4}?[-. \(\)]?[0-9]{1,9}$`
    match, _ := regexp.MatchString(phonePattern, phoneNumber)
    return match
}

func main() {
    phoneNumbers := []string{
        "+57 300 123 4567",
        "(300) 123-4567",
        "1234567890",
        "987-654-3210",
        "+1 800 555 1234",
        "invalid phone 1234",
    }

    for _, number := range phoneNumbers {
        fmt.Printf("Phone Number: %s is valid: %v\n", number, isValidPhoneNumber(number))
    }
}

Este código en Go verifica que el número telefónico siga un formato correcto y contenga solo caracteres válidos. Si un número no cumple con estos criterios, se considera inválido.