Skip to content

Instantly share code, notes, and snippets.

@Sigmus
Created March 11, 2013 18:12
Show Gist options
  • Save Sigmus/5136315 to your computer and use it in GitHub Desktop.
Save Sigmus/5136315 to your computer and use it in GitHub Desktop.
Validador CPF.
var validate_cpf = function(value) {
var cpf = value;
while(cpf.length < 11) cpf = "0"+ cpf;
var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/,
a = [], b = new Number, c = 11;
for (i=0; i<11; i++) {
a[i] = cpf.charAt(i);
if (i < 9) b += (a[i] * --c);
}
if ((x = b % 11) < 2) {
a[9] = 0
}
else {
a[9] = 11-x
}
b = 0;
c = 11;
for (y=0; y<10; y++) b += (a[y] * c--);
if ((x = b % 11) < 2) {
a[10] = 0;
}
else {
a[10] = 11-x;
}
if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;
return true;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment