diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..fbb5dc3 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,29 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + }, + "rules": { + "keyword-spacing": 1, + "space-before-function-paren": [1, "never"], + "eqeqeq": 1, + "space-infix-ops": 1, + "comma-spacing": 1, + "brace-style": 1, + "no-multiple-empty-lines": 1, + "camelcase": 1, + "func-call-spacing": 1, + "key-spacing": 1, + "semi": 1, + "no-floating-decimal": 1, + "no-multi-spaces": 1, + "object-property-newline": 1, + "padded-blocks": [1, "never"], + "space-before-blocks": 1, + "space-in-parens": 1, + "spaced-comment": 1, + "quotes": [1, "single"], + "id-length": [1, { "exceptions": ["i", "j", "x"] }], + "indent": [1, 2], + "no-array-constructor": 1 + } +} diff --git a/README.md b/README.md index b5bbef1..bd4a0e4 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,58 @@ -# Tarjeta de crédito válida - -Crea una web que pida, por medio de un `prompt()`, el número de una tarjeta de -crédito y confirme su validez según el [algoritmo de Luhn](https://es.wikipedia.org/wiki/Algoritmo_de_Luhn). -Lee este blog que explica [cómo funciona el algoritmo de Luhn](http://www.quobit.mx/asi-funciona-el-algoritmo-de-luhn-para-generar-numeros-de-tarjetas-de-credito.html). - -## Entregables - -Para cada producto debes entregar **un repositorio de GitHub** que -contenga: -1. Archivo `README.md` que explique el **pseudocódigo** de tu solución y su -**diagrama de flujo** -2. Archivo `app.js` con el **código** de tu solución -3. Archivo `index.html` vinculado con tu `app.js` - -## Tips - -A continuación un video de Michelle que te lleva a través del algoritmo de -Luhn y te da tips para completar este proyecto: - -[](https://www.youtube.com/watch?v=f0zL6Ot9y_w) - -## Consideraciones específicas - -1. Tu código debe estar compuesto por 1 función: `isValidCard` -2. El usuario no debe poder ingresar un campo vacío - -## Criterios de evaluación - -Se tomarán en cuenta las siguientes consideraciones a la hora de evaluar tu solución: - -1. Nombramiento de variables -2. Indentación -3. Validación de input: el usuario no debe poder ingresar un campo vacío o de tipo que no corresponda -4. Estructura de tus archivos -5. Archivo `README.md` correctamente redactado -6. Uso de comentarios para hacer tu código más legible -7. Que el programa cumpla con el propósito requerido +## Validación de Tarjetas +La siguiente web ha sido diseñada para validar el número de una tarjeta de crédito o débito, según el algoritmo de Luhn. +Más información sobre el algoritmo de Luhn en el siguiente link: [Algortimo_Luhn](https://es.wikipedia.org/wiki/Algoritmo_de_Luhn) + +Diagrama de flujo : + + +La web esta conformada por una página principal llamada Index.html, en la cual ejecuta la función llamada **isValidCard** alojada en el archivo app.js. + +La página obtiene la entrada de datos mediante un **prompt** . +### Especificaciones de la función isValidaCard + +Para la función **isValidCard** se implemento lo siguiente : + +* Crear una variable **num** con valor obtenido mediante un prompt ("Ingrese número de tarjeta"). +* Validar si el valor ingresado son solo números y el campo no debe estar vacio. +```javascript +do{ + var num= prompt("Ingrese número") + } +while (!num || !/^([0-9])*$/.test(num)); +``` +* Crear dos variables que alojaran valores de mensaje y el acumulador sum : +```javascript +var message=''; +var sum =0; +``` +* Convertir el valor **num** en un arreglo con los digitos separados. Esto mediante split('') y asignarle una variable. +```javascript +var arrayCard=num.split(''); +``` +* Revertir el orden de los dígitos dentro del arreglo. +```javascript +var arrayReverse = arrayCard.reverse(); +``` +* Recorrer los dígitos mediante un for, para validar cada dato. +* Si el dígito ocupa una posición impar : + * Convertirlo a número y multiplicarlo por 2. + * Luego validar si este nuevo resultado es >=10 + * Si es asi: + * separar los digitos + * Sumar los digitos + * Reemplazar la suma sobre el valor incialmente elegido. + + * Si No es asi : + * Reemplazar el número obtenido sobre el valor inicial. +* Si el dígito no ocupa una posición impar lo salta y pasa al siguiente. +* Convertir los elementos del arreglo que no han sido modificados en números. +* Sumar todos los elementos del arreglo y alojar el resultado en la variable suma. +* Validar según la siguiente condición : + * Si + ```javascript + sum%10==0 ? message = "válido" : message = "inválido" + ``` + * Mostrar mensaje "válido" + * Sino + * Mostrar mensaje " Inválido" +* Mostrar el mensaje en la página web diff --git a/assets/docs/validacard.png b/assets/docs/validacard.png new file mode 100644 index 0000000..6aeb526 Binary files /dev/null and b/assets/docs/validacard.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..a643b77 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + +
+ +