08 novembro 2021

Michelly Oliveira

Expressão regular para validar campo que aceita CPF ou CNPJ

    Nenhum comentário:

 



Esta solução valida estes formatos: 00000000000, 00000000000000, 000.000.000-00, 00.000.000/0000-00 e até 000000000-00 ou 00000000/0000-00, por exemplo. Os pontos e traços são opcionais em cada uma das posições.

O que não é aceito, por exemplo: 000-000-000-00 (mas pode ser alterado conforme nota abaixo)

Regex:


([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})

Clique aqui e faça seus testes em realtime no regexpal.

Explicação:

  • [0-9]{2} Faixa de caracteres: 0 a 9, quantidade: 2 caracteres;
  • [0-9]{3} Faixa de caracteres: 0 a 9, quantidade: 3 caracteres;
  • [0-9]{4} Faixa de caracteres: 0 a 9, quantidade: 4 caracteres;
  • [\.]?Um ponto, opcional. Foi usado \ no ponto, pois ele sozinho é caractere especial;
  • [-]? Um traço, opcional (se acrescentar outros caracteres, comece pelo - sempre);
  • [\/]? Uma barra, opcional. Também "escapada" com \ pra agradar o PCRE;
  • (grupo1)|(grupo2) Se um dos grupos validar, a expressão é válida.

 

Caso queira aceitar outros separadores, basta acrescentar entre os [ ].
Exemplo: [-\.\/]? vai aceitar tanto - quanto . e / naquela posição (? = ou nada).

 

Para adaptar para outros "dialetos" de regexp, algumas variações possíveis seriam tirar o escape da barra (\/ => /) e opcionalmente colocar um ^ no começo e um $ no fim da linha.


Fonte: https://pt.stackoverflow.com/questions/11045/expressão-regular-para-validar-um-campo-que-aceita-cpf-ou-cnpj

Próximo
« Anterior
Anterior
Próximo »