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}$)/
@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