Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/03/2014, 00:35
Avatar de Alexis88
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