nifRegex
: ^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKE]$
nieRegex
: ^[XYZ][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$
TRWAGMYFPDXBNJZSQVHLCKE
.
validar(value)
toma un número de identificación y realiza las siguientes acciones:Convierte el número a mayúsculas.
TRWAGMYFPDXBNJZSQVHLCKE
utilizando la fórmula mencionada.
function validar(value){
var validChars = 'TRWAGMYFPDXBNJZSQVHLCKET';
var nifRexp = /^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKET]$/i;
var nieRexp = /^[XYZ][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKET]$/i;
var str = value.toString().toUpperCase();
if (!nifRexp.test(str) && !nieRexp.test(str)) return false;
var nie = str
.replace(/^[X]/, '0')
.replace(/^[Y]/, '1')
.replace(/^[Z]/, '2');
var letter = str.substr(-1);
var charIndex = parseInt(nie.substr(0, 8)) % 23;
if (validChars.charAt(charIndex) === letter) return true;
return false;
}
Jorge García
Fullstack developer