• inicio
  • tutoriales flash
  • trucos flash
  • faq's flash
  • enlaces flash
  • suscribirse al feed RSS

tutoriales ( todos | principiante | medio | avanzado | AS 1.0 | AS 2.0 | AS 3.0 | top )

Tutorial FLASH - Validar la letra del DNI con ActionScript 3.0.

| | Más
Versión Flash: CS3 y superiores   |   Compatible con ActionScript 3.0   |   Nivel: Medio   |   Hits: 28343

En este tutorial os vamos a facilitar una función para validar la letra del DNI (documento nacional de identidad de España).

COMO HACERLO.
Para llevar a cabo la validación vamos a explicar el sencillo algoritmo necesario para obtener la letra. Consiste en dividir la parte numérica del DNI entre 23 y obtener el resto. Una vez que tengamos este valor del resto obtenemos la letra según la correspondencia obtenida en la tabla siguiente:

tabla correspondencia

Conociendo ésto, la construcción de una función que verifique la letra del documento no es tarea complicada:

function isDNI (dni:String):Boolean {
  // array que contiene la relación
  // de la tabla
  var corr:Array = new Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E");
  // obtenemos la cadena de la parte numérica
  var literal_parte_numerica:String = dni.substring(0,dni.length-1);
  // la convertimos a un volor numérico
  var valor_numerico:Number = parseFloat(literal_parte_numerica);
  // obtenemos el resto
  var resto:uint = valor_numerico % 23;
  // obtenemos la letra del DNI
  var letra:String = dni.charAt(dni.length-1).toUpperCase();
  // comparamos la letra con el valor obtenido
  // en la tabla correspondiente al resto
  if (String(letra) == String(corr[resto])) {
    // coincide
    return true;
  }
  // no coincide
  return false;
}

Como veis se trata de una functión que recibe como único parámetro la cadena del DNI y que retorna un valor booleano. Esta misma tabla se emplea también para validar el NIE (número de identificación de extranjeros en España) aunque en este caso hay que tener en cuenta que el primer carácter será una letra, normalmente una X o una Y.

Ejemplo de uso:

if(isDNI("50853893L")){
  //acciones si dni ok
} else {
  // acciones si dni incorrecto
}

Además si modificáis la línea var resto:uint = valor_numerico % 23; por ésta var resto:Number = valor_numerico % 23; la función os vale también para ActionScript 2.0.

En este enlace está a vuestra disposición el archivo fla para Flash CS3.

Descargar FLA

| | Más
flash 1flash 1flash 1flash 2flash 1flash 3flash 1flash 4