Launching a SaaS?·Collect waitlist signups before you build — before.run
SandboxPatternsDetectDocsChangelog
Identity
pt-BR
#cnpj
#brazil
#company
#business

Brazilian CNPJ

Matches a Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) — company identifier in formatted or unformatted form.

Brazilian B2B formsInvoice validationCompany registration
/
/
Safe
Test String
2 matches
\d{2}digit\d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
\.?\.\. — escaped character '.' — repeated zero or one time (optional) · ? — zero or one time (optional)
\d{3}digit\d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
\.?\.\. — escaped character '.' — repeated zero or one time (optional) · ? — zero or one time (optional)
\d{3}digit\d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
\/?\/\/ — escaped character '/' — repeated zero or one time (optional) · ? — zero or one time (optional)
\d{4}digit\d — digit (0–9) — repeated exactly 4 times · {4} — exactly 4 times
-?-'-' — literal character — repeated zero or one time (optional) · ? — zero or one time (optional)
\d{2}digit\d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
Pattern: 36 charsInput: 33 chars
100% client-side · private

Valid Examples

  • 11.222.333/0001-81
  • 11222333000181

Invalid Examples

  • 11.222.333/0001
  • 11.222.333/0001-8
  • AB.222.333/0001-81

Usage & Integration

Validate Brazilian CNPJ natively in your backend or frontend without copying regex strings.

Node / Edge

import { validate } from '@regexto/validators';

validate('br-cnpj', '...');

Python

from regexto_validators import validate

validate("br-cnpj", "...")

Go

import "github.com/regex-to/validators-go"

valid, err := validators.Validate("br-cnpj", "...")

PHP

use RegexTo\Validators\Validator;

Validator::validate('br-cnpj', '...');

Rust

use regexto_validators::validate;

let is_valid = validate("br-cnpj", "...").unwrap();