×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Javascript
Posted by: Joel Quenard
Added: Dec 7, 2021 5:34 PM
Modified: Dec 7, 2021 5:37 PM
Views: 606
Tags: no tags
  1. function verificarNIF(e) {
  2.     let numerosNIF;
  3.     let letraNIF;
  4.     let letraCorrespondiente = 'TRWAGMYFPDXBNJZSQVHLCKET';
  5.     let nifIntroducido = e.target;
  6.     let expresion_regular_nif = /^\d{8}[A-Z]$/;
  7.     let expresion_regular_cif = /^[A-Z]\d{8}$/;
  8.  
  9.     nifIntroducido.value = nifIntroducido.value.toUpperCase();
  10.     nifIntroducido.setCustomValidity("");
  11.     if (expresion_regular_nif.test(nifIntroducido.value) == true) {
  12.         numerosNIF = nifIntroducido.value.substr(0, nifIntroducido.value.length - 1);
  13.         letraNIF = nifIntroducido.value.substr(nifIntroducido.value.length - 1, 1);
  14.         numerosNIF = numerosNIF % 23;
  15.         letraCorrespondiente = letraCorrespondiente.substring(numerosNIF, numerosNIF + 1);
  16.         if (letraCorrespondiente != letraNIF) {
  17.             nifIntroducido.setCustomValidity("NIF erroneo, la letra del NIF no se corresponde");
  18.         }
  19.     } else if (expresion_regular_cif.test(nifIntroducido.value) == true) {
  20.         letraNIF = nifIntroducido.value.substr(0, 1);
  21.         if (letraNIF != 'A' && letraNIF != 'B' && letraNIF != 'C' && letraNIF != 'D' && letraNIF != 'E' && letraNIF != 'F' && letraNIF != 'G' && letraNIF != 'H' && letraNIF != 'J' && letraNIF != 'N' && letraNIF != 'P' && letraNIF != 'Q' && letraNIF != 'R' && letraNIF != 'S' && letraNIF != 'U' && letraNIF != 'V' && letraNIF != 'W') {
  22.             nifIntroducido.setCustomValidity("NIF erroneo");
  23.         }
  24.     } else {
  25.         nifIntroducido.setCustomValidity('NIF erroneo, formato no válido');
  26.     }
  27. }