Cita:
Iniciado por EnCeRiO
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 > 0 ) ?
"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