validarTelefone static method

bool validarTelefone(
  1. dynamic telefone
)

Valida um número de telefone.

Esta função verifica se um número de telefone é válido de acordo com as seguintes regras:

  • Remove todos os caracteres não numéricos do número de telefone.
  • Verifica se o número tem o tamanho correto (8 ou 9 dígitos locais + 0 ou 2 dígitos DDD).
  • Se o número tem 10 ou 11 dígitos, verifica se os dois primeiros são um DDD válido.

Retorna true se o número de telefone for válido, caso contrário retorna false.

Implementation

static bool validarTelefone(dynamic telefone) {
  try {
    telefone = "$telefone";
    String apenasNumeros = "$telefone".onlyNumbers;

    if (apenasNumeros.length == 13 && apenasNumeros.startsWith("55")) {
      apenasNumeros = apenasNumeros.removeFirst(2);
    }

    if (apenasNumeros.length < 8 || apenasNumeros.length > 11) {
      return false;
    }

    if (apenasNumeros.length > 9) {
      int ddd = int.parse(apenasNumeros.substring(0, 2));
      if (ddd < 11 || ddd > 99) {
        return false;
      }
    }

    return true;
  } catch (e) {
    return false;
  }
}