CPF validation occurs through the implementation of an algorithm.
With Ers it may even be possible through the modern metacharacter (?{code}), but I find it quite unlikely in addition to plastering your Application.
The best thing to do is to add a new validator.
jQuery.validator.addMethod("cpf", function(value, element) {
value = jQuery.trim(value);
value = value.replace('.','');
value = value.replace('.','');
cpf = value.replace('-','');
while(cpf.length < 11) cpf = "0"+ cpf;
var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
var a = [];
var b = new Number;
var 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; }
var retorno = true;
if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) retorno = false;
return this.optional(element) || retorno;
}, "Informe um CPF válido");
$(document).ready(function(){
$("#meuForm").validate({
rules: {
cpf: {cpf: true, required: true}
},
messages: {
cpf: { cpf: 'CPF inválido'}
}
,submitHandler:function(form) {
alert('ok');
}
});
});
Example in Jsfiddle
I did not use the built-in snippet because it is giving an error in the console, tomorrow I see what can be. And as for the algorithm, I picked up a random one on the Internet, didn’t get to optimize.
– Bruno Augusto
Oh yes, but I already have more than 10 "obsolete" in the list :) - Although the current hat I think was tailor-made for my "avatar".
– Bacco
I had some problems on the console, such as "Cannot read Property 'call' of Undefined. Exception ocurred when checking element", but I decided to declare the variables. var Cpf = value.replace('-','); (add the var), and added the lines below " var c": var i; var x; var y;
– Thiago Tomais