Arrays en javascript
Array En javaScript un array es un objeto que puede contener diversos elementos. Estos elementos no tienen por qué ser todos del mismo tipo: let …
En mi trabajo he de validar números de IBAN ( International Bank Account Number) con mucha frecuencia.
Hasta ahora he utilizado un algoritmo que “alguien” había conseguido en internet, pero no me terminaba de convencer. En primer lugar porque no entendía muy bien alguna de las operaciones que hacía y, en segundo lugar, porque pensaba que se podría realizar con menos líneas de código.
Después de darle algunas vueltas, este es el resultado, bastante compacto, en mi opinión.
La función isValidIbanSpanish devuelve true o false en función de si el IBAN pasado como parámetro es válido o no lo es.
function isValidIbanSpanish(iban) {
const LETRAS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
function mod(num, a) {
let res = 0;
// Trabajar con números muy grandes en javascript puede dar resultados no fiables. Para hallar el módulo se hace paso a paso a través de esta función.
// Recorrer todos los dígitos del IBAN
// Multiplicar el resultado anterior por 10, sumar el dígito que toque y calcular el resto
for (let i = 0; i < num.length; i++)
res = (res * 10 + parseInt(num[i])) % a;
return res;
}
// Pasar a mayúsculas y quitar espacios
let _iban = iban.toUpperCase().trim().replace(/\s/g, "");
if (_iban.length !== 24) return false;
// Dígito de control del iban a comprobar
const _dc = _iban.substring(2, 4);
// Trasladar las dos primeras posiciones (las letras) al final.
// Antes de hacerlo es preciso convertirlas a números.
// Se busca su posición en el array LETRAS y se suma 10.
let n1 = LETRAS.indexOf(_iban.substring(0, 1)) + 10;
let n2 = LETRAS.indexOf(_iban.substring(1, 2)) + 10;
_iban = _iban.substring(4) + n1 + n2 + "00";
_mod = mod(_iban, 97);
dc = 98 - _mod;
dc = dc < 10 ? "0" + dc : dc;
if (_dc === String(dc)) return true;
else return false;
}
Array En javaScript un array es un objeto que puede contener diversos elementos. Estos elementos no tienen por qué ser todos del mismo tipo: let …
Array En javaScript un array es un objeto que puede contener diversos elementos. Estos elementos no tienen por qué ser todos del mismo tipo: let …