Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] codigo de validacion de cedula

Estas en el tema de codigo de validacion de cedula en el foro de Javascript en Foros del Web. Tengo un formulario donde el primer campo de texto es la cédula de identidad, ¿como haría un código para que lo primero que me permita ...
  #1 (permalink)  
Antiguo 28/02/2014, 21:46
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
codigo de validacion de cedula

Tengo un formulario donde el primer campo de texto es la cédula de identidad, ¿como haría un código para que lo primero que me permita escribir sea V (Venezolano) o E (Extranjero) (solo esos 2 caracteres ningún otro) y automáticamente luego de que me escriba una de esas 2 me escriba un - (guion), para luego permitirme escribir hasta 8 números (solo números nada de letras)?

Disculpen tantas molestias
  #2 (permalink)  
Antiguo 01/03/2014, 00:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: codigo de validacion de cedula

Con una sencilla expresión regular, puedes lograr tu cometido.

Código HTML:
Ver original
  1. Escriba su código: <input type = "text" id = "codigo" />

Código Javascript:
Ver original
  1. var pattern = /\d/,
  2.     caja = document.getElementById("codigo");
  3.  
  4. caja.addEventListener("keypress", function(e){
  5.     if (!pattern.test(String.fromCharCode(e.keyCode)) || this.value.length == 10)
  6.         e.preventDefault();
  7.     if (this.value.length === 1)
  8.         this.value += "-";
  9. }, false);

Con la expresión regular \d, validaremos que todos los caracteres que se ingresen desde el teclado sean números. Cuando el caracter no sea un número o si la caja de texto contiene 10 caracteres (el número inicial, el guión y los otros 8 números), se evitará el comportamiento natural del evento keypress (tecla pulsada), el cual consiste en imprimir el valor de la tecla en la caja de texto. Para esto, hago uso del método preventDefault. Luego, cuando la cantidad de caracteres ingresados sea igual a uno y volvamos a pulsar una tecla, se añadirá automáticamente un guión al valor de la caja de texto.

Con el método test, verifico que el valor de la tecla pulsada, el cual obtengo mediante el valor Unicode del mismo con el método keyCode y luego obteniendo su valor correspondiente en cadena, es decir, el valor que observamos en la tecla (el elemento físico) con el método String.fromCharCode, corresponda con lo indicado en la expresión regular.

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 01/03/2014, 08:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
codigo de validacion de cedula

De verdad funciona muy bien el único detalle es que el primer valor debe ser solo una V o una E no un numero
  #4 (permalink)  
Antiguo 01/03/2014, 10:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: codigo de validacion de cedula

Se me olvidó ese detalle.

Código Javascript:
Ver original
  1. var pattern = /\d/,
  2.     caja = document.getElementById("codigo");
  3.  
  4. caja.addEventListener("keypress", function(e){
  5.     if (this.value.length === 0 && (!(/(E|V)/).test(String.fromCharCode(e.keyCode))))
  6.         e.preventDefault();
  7.  
  8.     if (this.value.length > 0 && (!pattern.test(String.fromCharCode(e.keyCode)) || this.value.length == 10))
  9.         e.preventDefault();
  10.  
  11.     if (this.value.length === 1)
  12.         this.value += "-";
  13. }, false);

En la primera condición verificamos si la extensión del contenido es igual a cero (no se ha escrito) y el valor de la tecla pulsada no es la E o la V, se evita la inserción del valor tecleado. Las otras dos condiciones son las mismas que te expliqué en la respuesta anterior.

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 01/03/2014, 10:23
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: codigo de validacion de cedula

Sos un genio, muchas gracias por tu ayuda :D
  #6 (permalink)  
Antiguo 01/03/2014, 10:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: codigo de validacion de cedula

No olvides marcar el tema como solucionado para que otras personas que tengan el mismo problema que tuviste, sepan que aquí pueden encontrar una solución.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 02/03/2014, 09:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: codigo de validacion de cedula

como hago para marcarlo :P
  #8 (permalink)  
Antiguo 02/03/2014, 09:51
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: codigo de validacion de cedula

Si quiero ingresar un alert cada vez que se marca una letra que no sea la V o la E en que linea lo haria?
  #9 (permalink)  
Antiguo 02/03/2014, 11:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: codigo de validacion de cedula

Cita:
Iniciado por miguelbc7 Ver Mensaje
como hago para marcarlo
Al final del post, hay un botón de color verde y letras blancas en donde dice "Marcar tema como solucionado", ahí debes de dar un clic.

Cita:
Iniciado por miguelbc7 Ver Mensaje
Si quiero ingresar un alert cada vez que se marca una letra que no sea la V o la E en que linea lo haria?
En la primera condición.

Código Javascript:
Ver original
  1. if (this.value.length === 0 && (!(/(E|V)/).test(String.fromCharCode(e.keyCode)))) {
  2.         e.preventDefault();
  3.         alert("Debe de ingresar una E o una V");
  4. }

Por favor, analiza la información que se te brinda, no te limites a copiar y pegar o no volverás a recibir ayuda en este foro.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: cedula, formulario, validacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:43.