UNPKG

@snnowip/text-tools

Version:

Ferramentas de manipulação de texto em Node.js

32 lines (24 loc) 869 B
// cpfx.js // Remove caracteres não numéricos const sanitize = (cpf) => cpf.replace(/\D/g, ''); // Verifica se todos os dígitos são iguais const isAllDigitsEqual = (cpf) => /^(\d)\1{10}$/.test(cpf); // Calcula o dígito verificador const calcVerifier = (cpf, factor) => { let total = 0; for (let i = 0; i < factor - 1; i++) { total += parseInt(cpf[i]) * (factor - i); } const remainder = (total * 10) % 11; return remainder === 10 ? 0 : remainder; }; // Validação principal export const validar = (cpfInput) => { const cpf = sanitize(cpfInput); if (cpf.length !== 11 || isAllDigitsEqual(cpf)) return false; const digit1 = calcVerifier(cpf, 10); const digit2 = calcVerifier(cpf, 11); return digit1 === parseInt(cpf[9]) && digit2 === parseInt(cpf[10]); }; export const nome = 'CPFX - Validador de CPF'; export const versao = '1.0.0';