Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/01/2008, 11:07
forosdelwebdr
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Validación dni en formulario

Cita:
Iniciado por EnCeRiO Ver Mensaje
Hola, tengo el siguiente script para validar el dni de un formulario:
Código:
function validarEntero(valor){ 
valor = parseInt(valor) 
if (isNaN(valor)) { 
return "" 
}else{ 
return valor 
} 
}

function valida_envia(){
//valido el dni
dni = document.form.dni.value
dni = validarEntero(dni)
document.form.dni.value=dni
if (dni==""){
alert("Debe introducir su DNI")
document.form.dni.focus()
return false;
}
}
Creo que funciona bien, mi pregunta es ¿puede un dni empezar por cero? porque si pongo por ejemplo dni: 02541 me cambia a: 1377 automáticamente


Saludos

PD: no se si he puesto esto en la sección correspondiente, lo siento si me he equivocado.
Aaaahhh EnCeRio, hablas de euros en tu firma eres español, no? pero no deberías hablar de nif?

Anyway te paso un script según DNI de Argentina que va por los 50 millones casí y los extrajeros tienen 90, creo de 100 no hay.
Perfectamente puede tener un 0 delante porque hay mucha gente de 50/60 años con documento 7.000.000 y poner 07.000.000 esta mal escrito pero es válido.

Código PHP:
<script>
function 
valida_envia(){
    
//valido el dni
    
var dni document.form.dni.value;
    var 
found = new Array();
                
//delante de los punto va una barra invertida contraria a / el problema es que este foro elimina las barras
    
found dni.match(/([0-9]{1,2}?).?([0-9]{3}).?([0-9]{3})/);//1.1
    // si sería 2 significa que el número es menor a 1.000.000.. estan todos fiambres
    
if (found.length == 3) {
        
document.form.dni.value=dni.join("");//1.2
        
return true;
    } else {
        
alert((found.length ) ?
            
"Número de DNI incorrecto" :
            
"Debe introducir su DNI")
        );
        
document.form.dni.focus()
        return 
false;
    }
}
</script> 
Avisa si te funciona, ya q usar NaN necesitas tener la misma versión que match y con join nos fuimos un poco pero bue'...

Espero que te sirva.

Saludos