Advertisement
Guest User

Validator

a guest
Feb 5th, 2015
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. getDv : function(patente) {
  2.         var key = '';
  3.         var patAux = patente.toUpperCase();
  4.         var a = 0;
  5.         var b = 0;
  6.         var x;
  7.         var digi1;
  8.         var digi2;
  9.         var letrasValidas = {};
  10.         var patronNumeroFinal = /\d{9,10}/;// segun el comentario
  11.         // que esta al lado de
  12.         // cada patente valida
  13.         // puede quedar un
  14.         // numero de entre 9 y
  15.         // 10 caracteres
  16.  
  17.         letrasValidas['A'] = '14';
  18.         letrasValidas['B'] = '01';
  19.         letrasValidas['C'] = '00';
  20.         letrasValidas['D'] = '16';
  21.         letrasValidas['E'] = '05';
  22.         letrasValidas['F'] = '20';
  23.         letrasValidas['G'] = '19';
  24.         letrasValidas['H'] = '09';
  25.         letrasValidas['I'] = '24';
  26.         letrasValidas['J'] = '07';
  27.         letrasValidas['K'] = '21';
  28.         letrasValidas['L'] = '08';
  29.         letrasValidas['M'] = '04';
  30.         letrasValidas['N'] = '13';
  31.         letrasValidas['O'] = '25';
  32.         letrasValidas['P'] = '22';
  33.         letrasValidas['Q'] = '18';
  34.         letrasValidas['R'] = '10';
  35.         letrasValidas['S'] = '02';
  36.         letrasValidas['T'] = '06';
  37.         letrasValidas['U'] = '12';
  38.         letrasValidas['V'] = '23';
  39.         letrasValidas['W'] = '11';
  40.         letrasValidas['X'] = '03';
  41.         letrasValidas['Y'] = '15';
  42.         letrasValidas['Z'] = '17';
  43.         letrasValidas[' '] = '60';
  44.  
  45.         if (this.patronPatAutoVieja.test(patAux)) {
  46.             for (key in letrasValidas) {// REEMPLAZO LAS LETRAS VALIDAS POR
  47.                 // 00 YA QUE ASI ES PARA LAS
  48.                 // PATENTES VIEJAS
  49.                 patAux = patAux.replace(key, "00");
  50.             }
  51.         } else {
  52.             for (key in letrasValidas) {// REEMPLAZO LAS LETRAS VALIDAS POR
  53.                 // LOS NUMEROS QUE LE CORRESPONDEN
  54.                 patAux = patAux.replace(key, letrasValidas[key]);
  55.                 patAux = patAux.replace(key, letrasValidas[key]);
  56.                 patAux = patAux.replace(key, letrasValidas[key]);
  57.             }
  58.         }
  59.  
  60.         if (!patronNumeroFinal.test(patAux)) {// SI ACA NO TENGO UN NUMERO SE
  61.             // MANDO ALGUN CARACTER RARO O
  62.             // UNA Ñ
  63.             throw Error('No es válida la patente ingresada.');
  64.         }
  65.  
  66.         // AHORA SUMO LOS PARES EN A Y LOS IMPARES EN B
  67.         for (x = 0; x < patAux.length; x++) {
  68.             if (x % 2 == 0)
  69.                 a += parseInt(patAux.charAt(x));
  70.             else
  71.                 b += parseInt(patAux.charAt(x));
  72.         }
  73.  
  74.         // SUMO LOS DIGITOS DEL RESULTADO QUE QUEDO EN A
  75.         digi1 = new String(a);
  76.         while (digi1.length > 1) {// MIENTRAS HAYA MAS DE UN DIGITO, LOS SUMO
  77.             a = 0;
  78.             for (x = 0; x < digi1.length; x++) {
  79.                 a += parseInt(digi1.charAt(x));
  80.             }
  81.             digi1 = new String(a);
  82.         }
  83.  
  84.         // SUMO LOS DIGITOS DEL RESULTADO QUE QUEDO EN B
  85.         digi2 = new String(b);
  86.         while (digi2.length > 1) {// MIENTRAS HAYA MAS DE UN DIGITO, LOS SUMO
  87.             b = 0;
  88.             for (x = 0; x < digi2.length; x++) {
  89.                 b += parseInt(digi2.charAt(x));
  90.             }
  91.             digi2 = new String(b);
  92.         }
  93.  
  94.         return parseInt(a + '' + b);
  95.     }
  96. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement