1
resposta

Validando Telefones

Boa tarde,

O código abaixo, que foi apresentado na aula de validação de telefones, ele não funciona quando lançamos um número de cel do BR, conforme exemplo abaixo:

numero = 5531996582584

+553 (19) 9658-2584

import re

class ValidaNumeroTelefone:

    def __init__(self, numero):
        numero = str(numero)
        if self.valida_telefone(numero):
            self.numero = numero
        else:
            raise ValueError("Número Inválido!!")

    def valida_telefone(self, numero):
        padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})"
        validacao = re.findall(padrao, numero)
        if validacao:
            return True
        else:
            return False

    def formata_numero(self):
        padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})"
        mascara = re.search(padrao, self.numero)
        return "+{} ({}) {}-{}".format(mascara.group(1), mascara.group(2), mascara.group(3), mascara.group(4))

    def __str__(self):
        return self.formata_numero()
1 resposta

Rafael, é um exemplo didático simples. Ainda tem várias regras que não foram implementadas, como essa que vc citou. Acho que inclusive aqui no fórum tem outros colegas colocando essas regras para complementar nossos estudos.