come posso recuperare dal codice fiscale la data di nascita?
esiste uno script?
come posso recuperare dal codice fiscale la data di nascita?
esiste uno script?
Certo,si puo fare.
Ecco lo script.
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Menu Tester</title>
<style type="text/css">
.tabella
{
width:600px;
margin:0px;
padding:0px;
border-collapse:collapse;
}
.tabella td
{
margin:0px;
padding:10px;
border:2px solid red;
}
</style>
<script>
function calcola()
{
mesi="ABCDEHLMPRST";
nomi_mesi=new Array(
"Gennaio","Febbraio","Marzo","Aprile",
"Maggio","Giugno","Luglio","Agosto",
"Settembre","Ottobre","Novembre","Dicembre");
codice=document.getElementById("codice");
giorno=document.getElementById("giorno");
mese=document.getElementById("mese");
anno=document.getElementById("anno");
giorno.value=codice.value.substring(9,11);
str_mese=codice.value.substring(8,9).toUpperCase();
num_mese=mesi.indexOf(str_mese);
mese.value=nomi_mesi[num_mese];
anno.value=codice.value.substring(6,8);
}
</script>
</head>
<body>
<table class="tabella">
<tr>
<td>
Inserisci codice fiscale
</td>
<td>
<input id="codice" name="codice" type="text" size="50" />
</td>
</tr>
<tr>
<td>
GIORNO
</td>
<td>
<input type="text" readonly id="giorno" name="giorno" />
</td>
</tr>
<tr>
<td>
MESE
</td>
<td>
<input type="text" readonly id="mese" name="mese" />
</td>
</tr>
<tr>
<td>
ANNO
</td>
<td>
<input type="text" readonly id="anno" name="anno" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="button" value="invia" onclick="calcola()"/>
</td>
</tr>
</table>
</body>
</html>
solo dovresti tener conto che le donne hanno un giorno di nascita superiore a 31Originariamente inviato da marco.carrieri
Certo,si puo fare.
Ecco lo script.
...
![]()
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
prova questa, però considera che dal solo cdice fiscale non hai modo di distinguere una persona nata nel 1908 o nel 2008
se dai per assunto che non devi calcolare date di ultracentenari puoi usare questa che ho buttato giù in poco tempo
restituisce un array con sesso, giorno, mese e annocodice:<script type="text/javascript"> var codicefiscale = 'TRVLSA74D56C709X'; var tabellamesi = { "A" : "01", "B" : "02", "C" : "03", "D" : "04", "E" : "05", "H" : "06", "L" : "07", "M" : "08", "P" : "09", "R" : "10", "S" : "11", "T" : "12" }; var datanascita = codicefiscale.replace(/^(?:\w{6})(\d{2})(\w)(\d{2}).+$/, function(data, aa, mm, gg) { var anno = parseInt(aa, 10); var secolo = (anno < 9)? '20':'19'; anno = [secolo, aa].join(''); var giorno = parseInt(gg, 10); if (giorno > 71 || ((31 < giorno) && (giorno < 41))) return 'giorno di nascita errato.'; var sesso = (giorno > 31)? 'F' : 'M'; if (sesso === 'F') giorno -= 40; var mese = mm.toUpperCase(); if (!tabellamesi[mese]) return 'mese di nascita errato'; mese = tabellamesi[mese]; return [sesso, giorno, mese, anno]; }); alert(datanascita); </script>
i controlli sulla validità della data vanno ovviamente raffinati per verificare se esistono certe date (es. anni bisestili o mesi di 31 giorni)
![]()
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
e come richiamo la funzione dal codice fiscale?
in pratica ho una text per inserire il valore del codice fiscale che si chiama CF
mentre il campo data di nascita di chiama NATO
Che figura che ho fatto fcaldera. Hai ragione :,( hehe volevo solo dare una mano. Ci sono andato quasi vicino :P .
trasformarla in un funzione è questione di un attimoOriginariamente inviato da tigre2209
e come richiamo la funzione dal codice fiscale?
in pratica ho una text per inserire il valore del codice fiscale che si chiama CF
mentre il campo data di nascita di chiama NATO
scrivi il codice fiscale sul primo campo e all'onblur ti verrò scritta la data di nascitacodice:<script type="text/javascript"> function getDataByCF(cf) { var tabellamesi = { "A" : "01", "B" : "02", "C" : "03", "D" : "04", "E" : "05", "H" : "06", "L" : "07", "M" : "08", "P" : "09", "R" : "10", "S" : "11", "T" : "12" }; return cf.replace(/^(?:\w{6})(\d{2})(\w)(\d{2}).+$/, function(data, aa, mm, gg) { var anno = parseInt(aa, 10); var secolo = (anno < 9)? '20':'19'; anno = [secolo, aa].join(''); var giorno = parseInt(gg, 10); var sesso = (giorno > 31)? 'F' : 'M'; if (sesso === 'F') giorno -= 40; var mese = mm.toUpperCase(); mese = tabellamesi[mese]; return [giorno, mese, anno].join("/"); }); }; </script> <form> CF <input type="text" name="cf" onblur="document.getElementById('nato').value = getDataByCF(this.value);" onkeyup="this.value = this.value.toUpperCase();" /> Nato <input type="text" name="nato" id="nato"/> </form>
Ma, ripeto, devi fare dei controlli a monte sulla validità del codice fiscale
dove validaCF() è una funzione che fa tutti i controlli del casocodice:onblur="if validaCF(this.value) document.getElementById('nato').value = getDataByCF(this.value);" ...
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
Originariamente inviato da fcaldera
dove validaCF() è una funzione che fa tutti i controlli del caso
potrebbe essere questa funzione
questo credo sia il massimo controllo che si può fare ragionevolmente lato clientcodice:function isValidCF(codicefiscale) { var cf; var reCF = /^[a-z]{6}(\d{2})(A|B|C|D|E|H|L|M|P|R|S|T)([1256]\d|[04][1-9]|[37][01])[a-z]\d{3}[a-z]$/i; if (!(cf = codicefiscale.toUpperCase().match(reCF))) return false; else { var isLeapYear = function(year) { /* is a leap year ? */ var year = parseInt(year, 10); return (!(year % 100))? (!(year % 400)) : (!(year % 4)); }; /* controllo tutti i mesi 31 giorni */ if (/(31|71)/.test(cf[3]) && !(/[ACELMRT]/).test(cf[2])) return false; /* controllo febbraio non superiore 29 giorni */ if (/([37][01])/.test(cf[3]) && cf[2] === 'B') return false; /* controllo anni bisestili */ cf[1] = parseInt(cf[1], 10); cf[1] = [(((new Date).getFullYear() % 100) < cf[1])? '19':'20', cf[1]].join(''); if (/([26]9)/.test(cf[3]) && cf[2] === 'B' && !isLeapYear(cf[1])) return false; }; return true; } alert('TTRBDT81B69C067F : ' + isValidCF('TTRBDT81B69C067F')); alert('TTRBDT56H24C067F : ' + isValidCF('TTRBDT56H24C067F'));
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)