Skip to content

Instantly share code, notes, and snippets.

@mariovalney
Last active May 17, 2016 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariovalney/324ca2cd8d9a15ffd0c115411fbe8481 to your computer and use it in GitHub Desktop.
Save mariovalney/324ca2cd8d9a15ffd0c115411fbe8481 to your computer and use it in GitHub Desktop.
CPF and CNPJ validation (front-end)
function validateCPF(number) {
var cpf = number.toString().replace(/[^0-9]/g, '');
if (cpf.length != 11) {
return false;
}
var digitoTestado = cpf.slice(9, 11);
var digitoValidado = '';
var sum1 = sum2 = dig1 = dig2 = 0;
for (var i = 0; i < 10; i++) {
if (i < 9) {
sum1 = sum1 + ( cpf.charAt(i) * (10 - i) );
}
sum2 = sum2 + ( cpf.charAt(i) * (11 - i) );
};
if ( (sum1 % 11) >= 2 ) {
dig1 = 11 - (sum1 % 11);
}
if ( (sum2 % 11) >= 2 ) {
dig2 = 11 - (sum2 % 11);
}
digitoValidado = dig1.toString() + dig2.toString();
if ( digitoTestado === digitoValidado ) {
return true;
}
return false;
}
function validateCNPJ(number) {
var cnpj = number.toString().replace(/[^0-9]/g, '');
if (cnpj.length != 14) {
return false;
}
var digitoTestado = cnpj.slice(12, 14);
var digitoValidado = '';
var sum1 = sum2 = dig1 = dig2 = 0;
var second_row = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
for (var i = 0; i < 13; i++) {
if (i < 12) {
sum1 = sum1 + ( cnpj.charAt(i) * second_row[i + 1] );
}
sum2 = sum2 + ( cnpj.charAt(i) * second_row[i] );
};
if ( (sum1 % 11) >= 2 ) {
dig1 = 11 - (sum1 % 11);
}
if ( (sum2 % 11) >= 2 ) {
dig2 = 11 - (sum2 % 11);
}
digitoValidado = dig1.toString() + dig2.toString();
if ( digitoTestado === digitoValidado ) {
return true;
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment