jump to navigation

Validar números de tarjetas de crédito con JavaScript Marzo 7, 2008

Publicado por lineadecodigo en : JavaScript , trackback

Hace ya bastante tiempo leí en anieto2K un pequeño, pero a la vez interesante artículo sobre como validar números de tarjetas de crédito con JavaScript mediante unas sencillas expresiones regulares en JavaScript. La idea es validar una tarjeta de crédito Visa y una tarjeta de crédito MasterCard. En nuestro caso vamos a ver el código completo del ejemplo.

Lo primero que tenemos que saber es el formato de los números de estas tarjetas de crédito, para poder montar las expresiones regulares que lo validen.

Ahora construyamos las expresiones regulares. Lo primero que tenemos que saber es que una expresión regular comienza con /^ y termina con $/. Entre estos caracteres estará la expresión regular.

  1. /^ expresion regular $/

Como vamos a manejar dígitos tenemos que saber que el dígito lo representa el carácter d. Así:

  1. /^dd$/

sería una expresión regular que validase dos dígitos seguidos. Pero como no es plan de poner una ristra de caracteres d hasta llegar a 16 podemos utilizar la cardinalidad, es decir, el número de veces que se repite un dígito. Para ello utilizamos la siguiente expresión :

  1. {cardinalidad}

Así los dos dígitos quedarían de la siguiente forma:

  1. /^d{2}$/

Alguna cosa más que tenemos que saber es que si queremos que en una posición vaya un número específico valdría con poner el número y de igual forma podemos expresar rangos mediante corchetes y el rango en concreto.

  1. [rango]

Así, si queremos hacer referencia a los números entre el 500 y el 509 podríamos tener la siguiente expresión regular:

  1. /^50[1-9]$/

Por último, si queremos hacer referencia a que un número o carácter aparezca o no, es decir, la opcionalidad. Utilizamos el símbolo de cierre de interrogación (?). Esto nos servirá para hacer referencia que entre los grupos de dígitos de 4 de las tarjetas pueda venir un guión o no.

Finalmente las expresiones regulares de Visa y Mastercard serian las siguientes

  1. /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/ //Visa
  2. /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/ //Mastercard

Para validar si una cadena se ajusta a una expresión regular tenemos varios métodos. En nuestro caso utilizamos match. Este método le aplicamos directamente sobre la cadena

  1. umer.match(/^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/)

Esto nos devolverá un valor booleano. Es por ello que simplemente tendremos que comprobar el valor retornado:

  1. if (!visa.match(/^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/))
  2. visa_error = "No es un número de Visa correcto";
  3.  
  4. if (!mastercard.match(/^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/))
  5. mastercard_error = "No es un número de Visa correcto";

Vía: anieto2K

Visualizar el ejemplo
|- Descargar el código
|- Descargar del SVN
|- Reportar un error del código

|- Foro sobre JavaScript

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 35632 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (6 votos, media: 3.17 de 5)
Loading ... Loading ...

Comentarios»

1. shadow - Marzo 13, 2008

hola… me gustaria saber como puedo poner una restrigcion que me diga que es numero y ademas que es decimal… GRACIAS…

2. Astua - Abril 1, 2008

No lei mucho el codigo pero por lo que veo no validas si las tarjetas
cumplen con el algoritmo Mod10, por lo tanto solo te validaria si cumplen con el largo y si son numeros, espero no equivocarme.

Gracias…

3. ulises - Julio 30, 2008

me podria dar el CVC2 del ejemplo de tarjeta que se numeriza con 5588 3201 2345 6789 por favor
naecesito respuesta urgente …y no se lo que quiere decir “url”

4. jonas 4 ever - Julio 31, 2008

holas me podrias dar el cvc de visa x fas

5. alvaro - Agosto 6, 2008

hola necesito mas informacion acerca de los codigos binarios alvaro colombia

6. ivnn - Agosto 12, 2008

como se saca el CVC de una visa??

7. paolo - Septiembre 14, 2008

necesito un codigo para validar una registracion.. Gracias

8. paolo - Septiembre 14, 2008

necesito el codigo de cid de este numero de targeta 4552-7204-1234-5678

9. 'ok0ip - Octubre 22, 2008

necesita saber a q pais esta asociada mi tarjeta

10. osiel_leiva - Octubre 24, 2008

jaja q risa publicastes un articulo sobre validación y todos estos otros piden numeros de tarjetas jaja se salio del contexto tu articulo jaja

saludos!

11. chicasexy y linda - Noviembre 18, 2008

chicos para sacar el cvc de una targeta solo tienen que escribir los tres últimos dígitos del número impreso sobre la banda destinada a la firma, en el reverso de tu tarjeta.

12. luis - Noviembre 19, 2008

necesito un software que me de los datos personas a partir de el numero de targeta. si alguien puede ayudarte. me pueden enviar un correo a: chamatrix@hotmail.com

13. Diego Jose Lopez Pintado - Noviembre 20, 2008

Yo necesito lo contrario, que dado un nombre de persona, me de una lista de las tarjetas de credito que tienen, asi como su pin a ser posible.

Es sólo por curiosidad.

XD

14. rafiki - Abril 28, 2009

mejor me haceis una transferencia a mi cuenta..jjajajajajajjaa

15. najim - Mayo 22, 2009

yo la verdad no me he enterao de nada aver si me lo esplicas mas claro

16. gaga - Junio 14, 2009

quiero el codigo de validacion de una tarjeta de credito pero que me lo creen no que me digan que me fje atras




Si tienes dudas sobre JavaScript no dudes en visitar el Foro sobre JavaScript.
Imagen CAPTCHA Versión de audio
Recargar imagen