Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 4x 18x 18x 17x 11x 6x 6x 54x 6x 6x 6x 6x 6x 6x 60x 6x 6x 6x 4x 2x | const validateCPF = (cpf) => { cpf = cpf.replace(/[^\d]+/g, ''); if (cpf === '' || !/^\d+$/.test(cpf)) return false; if ( cpf.length !== 11 || cpf === '00000000000' || cpf === '11111111111' || cpf === '22222222222' || cpf === '33333333333' || cpf === '44444444444' || cpf === '55555555555' || cpf === '66666666666' || cpf === '77777777777' || cpf === '88888888888' || cpf === '99999999999' ) { return false; } let add = 0; for (let i = 0; i < 9; i += 1) { add += parseInt(cpf.charAt(i), 10) * (10 - i); } let rev = 11 - (add % 11); Eif (rev === 10 || rev === 11) { rev = 0; } Iif (rev !== parseInt(cpf.charAt(9), 10)) { return false; } add = 0; for (let i = 0; i < 10; i += 1) { add += parseInt(cpf.charAt(i), 10) * (11 - i); } rev = 11 - (add % 11); Iif (rev === 10 || rev === 11) { rev = 0; } if (rev !== parseInt(cpf.charAt(10), 10)) { return false; } return true; }; export default validateCPF; |