1
13693261870
2022-09-16 06df9667ad1465622bf0e423dc3840ef9f93c725
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
46
47
48
49
50
51
52
53
54
55
56
57
/*
 * Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number.
 * CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation.
 */
$.validator.addMethod("cpfBR", function(value) {
    // Removing special characters from value
    value = value.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "");
 
    // Checking value to have 11 digits only
    if (value.length !== 11) {
        return false;
    }
 
    var sum = 0,
        firstCN, secondCN, checkResult, i;
 
    firstCN = parseInt(value.substring(9, 10), 10);
    secondCN = parseInt(value.substring(10, 11), 10);
 
    checkResult = function(sum, cn) {
        var result = (sum * 10) % 11;
        if ((result === 10) || (result === 11)) {result = 0;}
        return (result === cn);
    };
 
    // Checking for dump data
    if (value === "" ||
        value === "00000000000" ||
        value === "11111111111" ||
        value === "22222222222" ||
        value === "33333333333" ||
        value === "44444444444" ||
        value === "55555555555" ||
        value === "66666666666" ||
        value === "77777777777" ||
        value === "88888888888" ||
        value === "99999999999"
    ) {
        return false;
    }
 
    // Step 1 - using first Check Number:
    for ( i = 1; i <= 9; i++ ) {
        sum = sum + parseInt(value.substring(i - 1, i), 10) * (11 - i);
    }
 
    // If first Check Number (CN) is valid, move to Step 2 - using second Check Number:
    if ( checkResult(sum, firstCN) ) {
        sum = 0;
        for ( i = 1; i <= 10; i++ ) {
            sum = sum + parseInt(value.substring(i - 1, i), 10) * (12 - i);
        }
        return checkResult(sum, secondCN);
    }
    return false;
 
}, "Please specify a valid CPF number");