Skip to content

Instantly share code, notes, and snippets.

@igorcosta
Created June 26, 2014 19:13
Show Gist options
  • Save igorcosta/3a4caa954a99035903ab to your computer and use it in GitHub Desktop.
Save igorcosta/3a4caa954a99035903ab to your computer and use it in GitHub Desktop.
Regex para validar CPF e CNPJ
Para CPF
/^\d{3}\.\d{3}\.\d{3}\-\d{2}$/
Para CNPJ
/^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/
Para ambos ao mesmo tempo
/(^\d{3}\.\d{3}\.\d{3}\-\d{2}$)|(^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$)/
@lsancho
Copy link

lsancho commented Aug 20, 2019

Simplesmente não consegui usar, se puder dar uma força eu agradeço.

use como voce usa qualquer outro regex, exemplo em javascript:

/^\d{3}\.\d{3}\.\d{3}\-\d{2}$/.test('676.928.678-52')

@outrowender
Copy link

Vocês podem usar esse site para fazer os testes

https://regex101.com

@Luispaim
Copy link

Luispaim commented Dec 7, 2019

Seu regex não funciona!

@raraujo91
Copy link

Este código apenas vai validar o formato do que é digitado/recebido.
O CPF/CNPJ possui um algoritmo em sua geração e o regex por si só não consegue validar isto.

Um bom link que explica sobre é este aqui.

@vvaug
Copy link

vvaug commented May 12, 2020

show

@Biciato
Copy link

Biciato commented Aug 20, 2020

Não funciona, se digitar 99.999.999/9, ele aceita

@efvi
Copy link

efvi commented Sep 21, 2020

Obrigado Igor! 👏👏

@marcusflat
Copy link

Valeu Igor !!!

@Henriquepb22
Copy link

Henriquepb22 commented Sep 30, 2020

Como que eu faço para validar um CNPJ tendo os pontos e traços ou não?

Adiciona esse regex no final desse ai
(^\d{14}$)

@SamuelFontes
Copy link

SamuelFontes commented Oct 9, 2020

Como que eu faço para validar um CNPJ tendo os pontos e traços ou não?

\d{2}\.?\d{3}\.?\d{3}\/?\d{4}\-?\d{2}
Ao colocar um ponto de interrogação após um caractere torna ele opcional.

@Henriquepb22
Copy link

Como que eu faço para validar um CNPJ tendo os pontos e traços ou não?

\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2}
Ao colocar um ponto de interrogação após um caractere torna ele opcional.

Porém dessa forma ele vai aceitar valores como '88.888888/88888' ou '88888.8888888-88', ai tem que ter cuidado na hora de validar

@LeonardoSena1
Copy link

Obrigado !

@gustavoeraldo
Copy link

Valeuu !

@thiffany33
Copy link

muito bom, obrigada

@ramonjoaquim
Copy link

valeu!!

@nauankiller15
Copy link

Gente quem estiver tendo erro ao implementar o recurso em React Nactive ou em Angular remove as expressões finais:

Ao invés de colar assim:
/^\d{3}.\d{3}.\d{3}-\d{2}$/

Colem deste jeito:
^\d{3}.\d{3}.\d{3}-\d{2}$

@lucassouza0807
Copy link

Salvou

@haroldofurtado
Copy link

Nesse caso ele faz validação com . vou bolar um esquema para ele validar tanto com ponto, para quando estiver sem.

@ssSilas
Copy link

ssSilas commented Nov 26, 2021

Muito bom!

@ranielisilveira
Copy link

ranielisilveira commented Dec 8, 2021

Assim funcionou pra mim:

public function rules(Request $request): array
{
    if (strlen($request->document) == 18) {
        $rule_tax_document = [
            'size:18',
            'regex:/^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$/',
            'cnpj',
        ];
    } else {
        $rule_tax_document = [
            'size:14',
            'regex:/^\d{3}\.\d{3}\.\d{3}\-\d{2}$/',
            'cpf',
        ];
    }

    return ['document' => array_merge(['required', 'unique:companies,tax_document'], $rule_tax_document)];
}

public function messages(): array
{
    return [
        'document.unique' => 'Documento já cadastrado, entrar na conta',
        'document.required' => 'CNPJ/CPF requerido',
        'document.size' => 'CNPJ/CPF deve ser informado corretamente',
        'document.regex' => 'CNPJ/CPF deve ser informado corretamente',
        'document.cnpj' => 'CNPJ inválido',
        'document.cpf' => 'CPF inválido',
    ];
}

}

@bonomiandreia
Copy link

[REGEX] - CPF with asterisk or numbers

criei um regex aceitando tbm asteristicos

@phrmendes
Copy link

muito bom, valeu!

@Geovanecs
Copy link

Geovanecs commented May 13, 2022

Olá Pessoal, se alguém teve dificuldade, mesmo fazendo tudo corretamente. Tentem da seguinte forma: "[0-9]{3}[\.][0-9]{3}[\.][0-9]{3}[\-][0-9]{2}"

Comigo só funcionou assim.

@EmanuelMGFC
Copy link

obrigado

@castrintt
Copy link

Vocês podem usar esse site para fazer os testes

https://regex101.com

esse tbm da pra usar bem https://www.regextester.com

@castrintt
Copy link

[0-9]{3}[.][0-9]{3}[.][0-9]{3}[-][0-9]{2}

esse é pra cpf somente correto?

@ranielisilveira
Copy link

@castrintt Funcionou pra você? Testou letras, caracteres especiais, cpfs inválidos, etc?

@castrintt
Copy link

@castrintt Funcionou pra você? Testou letras, caracteres especiais, cpfs inválidos, etc?

Sim! perfeitamente

@damiaofranca
Copy link

Como que eu faço para validar um CNPJ tendo os pontos e traços ou não?

\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2}
Ao colocar um ponto de interrogação após um caractere torna ele opcional.

Porém dessa forma ele vai aceitar valores como '88.888888/88888' ou '88888.8888888-88', ai tem que ter cuidado na hora de validar

Você encontrou algum regex que resolva esse problema ?

@diegomontania
Copy link

Gente quem estiver tendo erro ao implementar o recurso em React Nactive ou em Angular remove as expressões finais:

Ao invés de colar assim: /^\d{3}.\d{3}.\d{3}-\d{2}$/

Colem deste jeito: ^\d{3}.\d{3}.\d{3}-\d{2}$

Mesma coisa para o aspnet core. Muito obrigado!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment