Comunidad de diseño web y desarrollo en internet online

NIE - Validar

Citar            
MensajeEscrito el 16 Nov 2011 05:27 pm
Hola a tod@s,
la siguiente función me da error, con NIEs que he comprobado que son correctos:

.................

function validarNIE(numero)
{
var msgE="";
var msg;
var chars = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
if( !(/^[xyzXYZ]\d{7}[a-zA-Z]$/.test(numero)) )
{
msg='[ERROR]: Formato incorrecto: 1 letra(X,Y,Z), 7 dígitos y 1 letra';
msgE+='<tr><td width="18"><img src="../../../images/img-alert.gif"></td><td><font class="txtR11">'+msg+'</font></td></tr>';
}else if((numero.charAt(8)).toUpperCase() != chars[(numero.substring(2, 8))%23])
{
msg='[ERROR]: Letra incorrecta';
msgE+='<tr><td width="18"><img src="../../../images/img-alert.gif"></td><td><font class="txtR11">'+msg+'</font></td></tr>';
}else {msgE="";}

return msgE;
}

.................

Os agradezco cualquier ayuda ;-)
Saludos cordiales,
Jaime

Por jrj2011

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Nov 2011 06:59 pm
¿Y qué es un NIE?

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Nov 2011 07:14 pm

Por jrj2011

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Nov 2011 04:54 pm
Ya entiendo.

El problema es que con la función substring() estás extrayendo una cifra de menos, debe ser desde la 1 a la 8 y no desde la 2 a la 8 como lo estás haciendo.

Recuerda que en JS el primer caracter está en la posición 0.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.