Como permitir apenas DDDs validos utilizando expressões regulares

Não é difícil encontramos DDDs errados preenchidos por usuários por meio de formulários de cadastro.

Atualmente no Brasil temos 68 DDD distintos, são eles:

UFEstadoDDD
ACAcre68
ALAlagoas82
AMAmazonas92 – 97
APAmapá: 9696
BABahia71 – 73 – 74 – 75 – 77
CECeará85 – 88
DFDistrito Federal61
ESEspírito Santo27 – 28
GOGoiás62 – 64
MAMaranhão98 – 99
MGMinas Gerais31 – 32 – 33 – 34 – 35 – 37 – 38
MSMato Grosso do Sul67
MTMato Grosso65 – 66
PAPará91 – 93 – 94
PBParaíba83
PEPernambuco81 – 87
PIPiauí86 – 89
PRParaná41 – 42 – 43 – 44 – 45 – 46
RJRio de Janeiro21 – 22 – 24
RNRio Grande do Norte84
RORondônia69
RRRoraima95
RSRio Grande do Sul51 – 53 – 54 – 55
SCSanta Catarina47 – 48 – 49
SESergipe79
SPSão Paulo11 – 12 – 13 – 14 – 15 – 16 – 17 – 18 – 19
TOTocantins63

Busquei diversos tutoriais para verificar se DDD informado pelo usuário era de algum dos estados acima, porém só encontrei funções que validavam se o usuário havia informado números, por esse motivo desenvolvi as seguinte função.

Para validar apenas o DDD utilize a seguinte expressão regular:

((([1,4,6,8,9][1-9])|(2[1,2,4,7,8])|(3[1-8])|(4[1-9])|(5[1-5])|(7[1,3,4,5,7,9])))

Se você deseja validar um número de telefone que utiliza uma mascará no padrão (XX) XXXX-XXXX, utilize a seguinte expressão que validará apenas o DDD:

/(\((([1,4,6,8,9][1-9])|(2[1,2,4,7,8])|(3[1-8])|(4[1-9])|(5[1-5])|(7[1,3,4,5,7,9]))\)).+/i

Para validar se o estado aceita nono digito e o telefone utiliza a seguinte mascará (XX) 9XXXXX-XXXX:

/(\((([1,8,9][1-9])|(2[1,2,4,7,8])|(3[1-8])|(7[1,3,4,5,7,9]))\) 9).+/i

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *