@cauacampos/validate-br
v1.1.2
Published
Biblioteca leve e sem dependências para validações de dados brasileiros.
Downloads
12
Readme
npm i @cauacampos/validate-br
Lightweight, zero-dependency library for Brazilian validations
A simple and performant library for validating common Brazilian data formats. No external dependencies, just pure JavaScript.
Features
✨ Zero Dependencies - No external packages required
⚡ High Performance - Minimal overhead, optimized validations
📦 Dual Module Support - Works with both ESM and CommonJS
🧮 Real Calculations - CPF and CNPJ validation with digit verification
🛡️ Type Safe - TypeScript definitions included
Installation
npm install @caua/validate-brUsage
ESM
import validate from '@caua/validate-br';
validate.email('[email protected]'); // true
validate.cpf('123.456.789-09'); // true/false
validate.cnpj('11.222.333/0001-81'); // true/false
validate.phone('(11) 99999-9999'); // trueOr import individual validators:
import { cpf, email, cnpj, phone } from '@caua/validate-br';
cpf('12345678909');
email('[email protected]');CommonJS
const validate = require('@caua/validate-br');
validate.email('[email protected]');
validate.cpf('123.456.789-09');
validate.cnpj('11.222.333/0001-81');
validate.phone('11999999999');API
email(input: string): boolean
Validates an email address using a secure regex pattern and additional RFC 5322 checks.
validate.email('[email protected]'); // true
validate.email('invalid.email'); // false
validate.email('user@domain'); // falsecpf(input: string): boolean
Validates a CPF (Cadastro de Pessoas Físicas) with real digit verification.
Accepts CPF with or without formatting:
validate.cpf('123.456.789-09'); // true
validate.cpf('12345678909'); // true
validate.cpf('111.111.111-11'); // false (invalid sequence)
validate.cpf('000.000.000-00'); // false (invalid sequence)cnpj(input: string): boolean
Validates a CNPJ (Cadastro Nacional da Pessoa Jurídica) with real digit verification.
Accepts CNPJ with or without formatting:
validate.cnpj('11.222.333/0001-81'); // true
validate.cnpj('11222333000181'); // true
validate.cnpj('00.000.000/0000-00'); // false (invalid sequence)phone(input: string): boolean
Validates Brazilian phone numbers (mobile and landline).
Supports:
- With or without DDD (area code)
- With or without formatting
- Mobile (9 digits) and Landline (8 digits)
// With DDD
validate.phone('(11) 99999-9999'); // true (mobile)
validate.phone('(11) 3333-3333'); // true (landline)
validate.phone('11 99999-9999'); // true
validate.phone('11999999999'); // true
// Without DDD (local number)
validate.phone('999999999'); // true (mobile - 9 digits)
validate.phone('9999999-9999'); // true (mobile with formatting)
validate.phone('33333333'); // true (landline - 8 digits)
validate.phone('3333-3333'); // true (landline with formatting)Input Normalization
All validators automatically:
- Trim whitespace
- Remove common formatting characters (hyphens, slashes, parentheses)
- Handle case-insensitivity (for email)
You can pass formatted or unformatted inputs:
validate.cpf('123.456.789-09'); // ✓ Works
validate.cpf('12345678909'); // ✓ Works
validate.phone('(11) 99999-9999'); // ✓ Works
validate.phone('11999999999'); // ✓ WorksExamples
Validating User Registration
import validate from '@caua/validate-br';
function validateUserData(user) {
const errors = {};
if (!validate.email(user.email)) {
errors.email = 'Invalid email';
}
if (!validate.cpf(user.cpf)) {
errors.cpf = 'Invalid CPF';
}
if (!validate.phone(user.phone)) {
errors.phone = 'Invalid phone number';
}
return Object.keys(errors).length === 0 ? { valid: true } : { valid: false, errors };
}
const result = validateUserData({
email: '[email protected]',
cpf: '123.456.789-09',
phone: '(11) 99999-9999',
});
console.log(result); // { valid: true }Validating Company Data
import { cnpj } from '@caua/validate-br';
function isValidCompany(company) {
return cnpj(company.cnpj) && company.name.length > 0;
}TypeScript Support
TypeScript definitions are included:
import validate from '@caua/validate-br';
const isValid: boolean = validate.cpf('123.456.789-09');Performance
This library is optimized for performance:
- No regex compilation on each call
- Efficient string manipulation
- Early validation exits
- Minimal memory footprint
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
Author
Cauã - @caua
