Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2013, 09:47
skreal
 
Fecha de Ingreso: octubre-2013
Ubicación: madrid
Mensajes: 28
Antigüedad: 10 años, 7 meses
Puntos: 0
validacion tarjeta de credito

Buenas! Tengo que crear una validacion de tarjeta pero no consigo que me funcione el codigo, ayuda??
Aqui les pongo la parte del enunciado y les adjunto mi codigo javascript
El número de la tarjeta de crédito/débito consta de cuatro partes: aaaabbbbcccccccd. Los primeros dígitos (a) son un indicativo de la entidad bancaria. Los dígitos centrales (b) son el nº de la oficina dentro de cada banco. Los dígitos finales (c y d) corresponden al número de la tarjeta y al dígito de control de la misma.
El algoritmo de Luhn consiste en:
- Sumar los números en posición impar,
- Multiplicar por 2 los números en posición par (incluyendo el dígito de control) y
sumar los dígitos de estos resultados,
- Sumar las dos sumas parciales anteriores y
- Dividir el resultado por 10.
Si el resto de esta división es 0, entonces el número de la tarjeta es correcto. Por ejemplo,
el número de la tarjeta 1234567890123451 es correcta

function teclear(){
var x=0;
if(document.getElementById('txtTarjeta').value.len gth!=16){
alert("La tarjeta tiene que estar compuesta por 16 digitos");
x++;
}
if(x===0){
return true;
} else{
return false;
}
}

function comprNum(){
var numTar=document.getElementById('txtTarjeta').value ;
var num1=0;
for (var i=0;i<numTar.length;i++){ //empieza en 0 y termina en 15.
var a= parseInt(numTar.charAt(i),10);
if (i%2===0){ //POSICION IMPAR
num1=num1+a;
}
if (i%2==1){
if((a*2)<=9){
num1= num1+(a*2);
}
if ((a*2)>9){
num1= num1+(1+((a*2)-10));
}
}
var num2=0;
for (var i=0;i<num1.length;i++){
num2=num2+num1[i];
alert(num2);
}
if (num2%10===0){
return true;
}else {
alert("el numero de la tarjeta de credito es incorrecto");
return false;
}
}
}

function cuenta(valor){
var h=0;
for(var i=0;i<valor.length;i++){
h+=parseInt(valor.charAt(i),10);
}
return h;
}