German Correa
9bb8198f1e
Agrega librerias y temas gráficos de forma local, no cdn, directorio local lib Formulario de registro: - select se hacen con select2, falta validarlos - validación de nombre, apellido y mail ya funcionando con jquery-validate - arregla temas gráficos y de presentación FALTA: - validar los select - validar los radiobutton - TODA LA PUTA LOGICA DE BACK-END DE NUEVO!!!
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
/*
|
|
* 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" );
|