jQuery(document).on('blur', '#atencion_profesional_contacto #form-field-86fd40a', function() { var cif = jQuery(this).val(); if (validarCIF(cif)) { console.log('CIF válido'); } else { alert('CIF no válido'); jQuery(this).val(''); } });
jQuery(document).on('blur', '#atencion_profesional_averia_con_garantia #form-field-2942a6f', function() { var cif = jQuery(this).val(); if (validarCIF(cif)) { console.log('CIF válido'); } else { alert('CIF no válido'); jQuery(this).val(''); } });
jQuery(document).on('blur', '#atencion_profesional_averia_sin_garantia #form-field-b5b097e', function() { var cif = jQuery(this).val(); if (validarCIF(cif)) { console.log('CIF válido'); } else { alert('CIF no válido'); jQuery(this).val(''); } });
function validarCIF(cif) { if (!cif || cif.length !== 9) { return false; }
var letters = ['J', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; var digits = cif.substr(1, cif.length - 2); var letter = cif.substr(0, 1); var control = cif.substr(cif.length - 1); var sum = 0; var i; var digit;
if (!letter.match(/[A-Z]/)) { return false; }
for (i = 0; i < digits.length; ++i) { digit = parseInt(digits[i]); if (isNaN(digit)) { return false; } if (i % 2 === 0) { digit *= 2; if (digit > 9) { digit = parseInt(digit / 10) + (digit % 10); }
sum += digit; } else { sum += digit; } }
sum %= 10; if (sum !== 0) { digit = 10 - sum; } else { digit = sum; }
if (letter.match(/[ABEH]/)) { return String(digit) === control; } if (letter.match(/[NPQRSW]/)) { return letters[digit] === control; }
return String(digit) === control || letters[digit] === control; }