Newsgroup: it.comp.lang.javascript
Titolo: verifica parziale del codice fiscale.

Salve devo verificare il codice fiscale, in giro ho solo trovato
generatori, ma x verificare secondo me non vanno bene (vedi omonimie).
inoltre allegare un megadb ad una pagina sarebbe scomodo.
Pensavo quindi di fare una verifica parziale in JS, per poi fare una
verifica + accurata server side.
Esiste qualcosa di gia fatto, o almeno della documentazione, dato che
non conosco il criterio con cui sono fatti i codici fiscali.
Grazie
--    _  _______
  /| // /__  __/ Kirys <Remove DELTHIS from the address to reply>
 / |/ \   / /    Kirys Tech 2000: 
http://www.kt2k.com
/__|\__\ /_/ 2000

 generatori, ma x verificare secondo me non vanno bene (vedi omonimie).
Veramente nel caso delle omonimie il problema č dei generatori, non dei
programmmi che ne controllano la "sintassi"!
LAMASE

http://www.risorse.net/dhtml/varie
qui la trovi.
A presto!
--
Roberto e Alessandro Abbate
Moderatori di it.comp.www.html
http://www.Risorse.net
, 
http://MigliorHosting.it

A presto!
mica lo ho trovato sai?


> mica lo ho trovato sai?
Eppure credevo di averlo pubblicato...
ce l'ho in una delle due macchina qui... spulcio un po' se lo trovo ti passo
il codice.


A presto!
aspetto fiducioso


A presto!
lo hai trovato?


> lo hai trovato?
purtroppo no :(
appena ho 5min lo cerco sulla rete, cosě se lo trovo lo pubblico anche su
Risorse.net.


 non conosco il criterio con cui sono fatti i codici fiscali.
Ti riposto un post di Quicker del 4 maggio scorso.
Forse puo' essere utile anche a Roberto per il suo sito, anche se penso sia
meglio chiedere all'autore ;-)
**********************************************
 // Java Script functions
// Calcolo del codice fiscale
// (c) Copyright 1998-1999 Nicola Asuni
// start          : 03/11/1998
// ultima modifica: 16/11/1999
// Autore:
// -----------------------------
// Nicola Asuni
// Via Ugo Foscolo n.19
// 09045 Quartu Sant'Elena (CA)
// 
nicol...@geocities.com
// 
http://www.nicolaasuni.da.ru
// -----------------------------
// Variables:
// ------------------------------------------------------------------------
var strCodFis="";
var strcognome="";
var strnome="";
var strgiornosex="";
var chrcontrollo='';
// Controls/Definitions:
// -------------------------------------------------------------------------
DefaultValues();
// -------------------------------------------------------------------------
// Functions:
// -------------------------------------------------------------------------
// Setta i prodotti ed i valori di default
// -------------------------------------------------------------------------
function DefaultValues()
{
 strCodFis="";
 strcognome="";
 strnome="";
 strgiornosex="";
 chrcontrollo='';
 Cognome = "";
 Nome = "";
 Sesso = 0;
 Comune = "";
 CodiceFiscale = "";
 AnnoCento = 19;
 AnnoDieci = "0";
 AnnoZero = "0";
 Mese = "A";
 Giorno = 1;
return;
}
// -------------------------------------------------------------------------
function CheckCognome()
{
 if(document.FormCodFis.Cognome.value.length < 1)
   {
    alert("Attenzione:\nManca il Cognome!");
    return(0);
   }
document.FormCodFis.Cognome.value =
document.FormCodFis.Cognome.value.toUpperCase();
return(1);
}
// -------------------------------------------------------------------------
function CheckNome()
{
 if(document.FormCodFis.Nome.value.length < 1)
   {
    alert("Attenzione:\nManca il Nome!");
    return(0);
   }
document.FormCodFis.Nome.value =
document.FormCodFis.Nome.value.toUpperCase();
return(1);
}
// -------------------------------------------------------------------------
function CheckComune()
{
 if(document.FormCodFis.Comune.value.length < 1)
   {
    alert("Attenzione:\nManca il Comune!");
    return(0);
   }
document.FormCodFis.Comune.value =
document.FormCodFis.Comune.value.toUpperCase();
return(1);
}
// -------------------------------------------------------------------------
function CalcolaCodiceFiscale()
{
 var gs=0;
 var i=0;
 var somma=0;
 strCodFis="";
 strcognome="";
 strnome="";
 strgiornosex="";
 chrcontrollo='';
Giorno =
parseInt(document.FormCodFis.Giorno.options[document.FormCodFis.Giorno.selec
tedIndex].value,10);
AnnoCento =
parseInt(document.FormCodFis.AnnoCento.options[document.FormCodFis.AnnoCento
.selectedIndex].value,10);
AnnoDieci =
document.FormCodFis.AnnoDieci.options[document.FormCodFis.AnnoDieci.selected
Index].value;
AnnoZero =
document.FormCodFis.AnnoZero.options[document.FormCodFis.AnnoZero.selectedIn
dex].value;
Mese =
document.FormCodFis.Mese.options[document.FormCodFis.Mese.selectedIndex].val
ue;
Comune = document.FormCodFis.Comune.value;
Sesso =
parseInt(document.FormCodFis.Sesso.options[document.FormCodFis.Sesso.selecte
dIndex].value,10);
if(CheckCognome() && CheckNome())
 {
  // Processa il cognome
    for (i=0; i<document.FormCodFis.Cognome.value.length; i++)
        {
         switch (document.FormCodFis.Cognome.value.charAt(i))
                {
                  case 'A':
                  case 'E':
                  case 'I':
                  case 'O':
                  case 'U': break;
                  default :
                  if((document.FormCodFis.Cognome.value.charAt(i)<='Z')&&
(document.FormCodFis.Cognome.value.charAt(i)>'A'))
                   strcognome = strcognome +
document.FormCodFis.Cognome.value.charAt(i);
                }
        }
    if (strcognome.length < 3)
      {
       for (i=0; i<document.FormCodFis.Cognome.value.length; i++)
          {
           switch (document.FormCodFis.Cognome.value.charAt(i))
                 {
                  case 'A':
                  case 'E':
                  case 'I':
                  case 'O':
                  case 'U': strcognome = strcognome +
document.FormCodFis.Cognome.value.charAt(i);
                 }
          }
       if (strcognome.length < 3)
         {
          for (i=strcognome.length; i<=3; i++)
             { strcognome = strcognome + 'X'; }
         }
      }
   strcognome = strcognome.substring(0,3);
  // processa il nome
    for (i=0; i<document.FormCodFis.Nome.value.length; i++)
       {
        switch (document.FormCodFis.Nome.value.charAt(i))
              {
               case 'A':
               case 'E':
               case 'I':
               case 'O':
               case 'U': break;
               default:
 if((document.FormCodFis.Nome.value.charAt(i)<='Z')&&
(document.FormCodFis.Nome.value.charAt(i)>'A'))
                  strnome = strnome +
document.FormCodFis.Nome.value.charAt(i);
              }
       }
    if (strnome.length > 3)
      {
        strnome = strnome.substring(0,1) + strnome.substring(2,4);
      }
    else {
          if (strnome.length < 3)
            {
             for (i=0; i<document.FormCodFis.Nome.value.length; i++)
                {
                  switch (document.FormCodFis.Nome.value.charAt(i))
                        {
                         case 'A':
                         case 'E':
                         case 'I':
                         case 'O':
                         case 'U': strnome = strnome +
document.FormCodFis.Nome.value.charAt(i);
                        }
                }
             if (strnome.length < 3)
               {
                for (i=strnome.length; i<=3; i++)
                   {strnome = strnome + 'X';}
               }
            }
          strnome = strnome.substring(0,3);
         }
// Fine processa nome
 // processa giorno e sesso
gs = Giorno + (40 * Sesso);
  if(gs<10) strgiornosex = "0" + gs;
  else strgiornosex =  gs;
strCodFis = strcognome + strnome + AnnoDieci + AnnoZero + Mese +
strgiornosex + Comune;
 // calcola la cifra di controllo
    for (i=0; i<15; i++)
       {
        if (((i+1) % 2) != 0) // caratteri dispari
          {
           switch (strCodFis.charAt(i))
                 {
                  case '0':
                  case 'A':{ somma += 1; break;}
                  case '1':
                  case 'B':{ somma += 0; break;}
                  case '2':
                  case 'C':{ somma += 5; break;}
                  case '3':
                  case 'D':{ somma += 7; break;}
                  case '4':
                  case 'E':{ somma += 9; break;}
                  case '5':
                  case 'F':{ somma += 13; break;}
                  case '6':
                  case 'G':{ somma += 15; break;}
                  case '7':
                  case 'H':{ somma += 17; break;}
                  case '8':
                  case 'I':{ somma += 19; break;}
                  case '9':
                  case 'J':{ somma += 21; break;}
                  case 'K':{ somma += 2; break;}
                  case 'L':{ somma += 4; break;}
                  case 'M':{ somma += 18; break;}
                  case 'N':{ somma += 20; break;}
                  case 'O':{ somma += 11; break;}
                  case 'P':{ somma += 3; break;}
                  case 'Q':{ somma += 6; break;}
                  case 'R':{ somma += 8; break;}
                  case 'S':{ somma += 12; break;}
                  case 'T':{ somma += 14; break;}
                  case 'U':{ somma += 16; break;}
                  case 'V':{ somma += 10; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 25; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 23; break;}
                 }
          }
        else // caratteri pari
            {
              switch (strCodFis.charAt(i))
                 {
                  case '0':
                  case 'A':{ somma += 0; break;}
                  case '1':
                  case 'B':{ somma += 1; break;}
                  case '2':
                  case 'C':{ somma += 2; break;}
                  case '3':
                  case 'D':{ somma += 3; break;}
                  case '4':
                  case 'E':{ somma += 4; break;}
                  case '5':
                  case 'F':{ somma += 5; break;}
                  case '6':
                  case 'G':{ somma += 6; break;}
                  case '7':
                  case 'H':{ somma += 7; break;}
                  case '8':
                  case 'I':{ somma += 8; break;}
                  case '9':
                  case 'J':{ somma += 9; break;}
                  case 'K':{ somma += 10; break;}
                  case 'L':{ somma += 11; break;}
                  case 'M':{ somma += 12; break;}
                  case 'N':{ somma += 13; break;}
                  case 'O':{ somma += 14; break;}
                  case 'P':{ somma += 15; break;}
                  case 'Q':{ somma += 16; break;}
                  case 'R':{ somma += 17; break;}
                  case 'S':{ somma += 18; break;}
                  case 'T':{ somma += 19; break;}
                  case 'U':{ somma += 20; break;}
                  case 'V':{ somma += 21; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 23; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 25; break;}
                 }
            }
    }
   somma %= 26;
   switch (somma)
         {
          case 0: {chrcontrollo='A'; break;}
          case 1: {chrcontrollo='B'; break;}
          case 2: {chrcontrollo='C'; break;}
          case 3: {chrcontrollo='D'; break;}
          case 4: {chrcontrollo='E'; break;}
          case 5: {chrcontrollo='F'; break;}
          case 6: {chrcontrollo='G'; break;}
          case 7: {chrcontrollo='H'; break;}
          case 8: {chrcontrollo='I'; break;}
          case 9: {chrcontrollo='J'; break;}
          case 10: {chrcontrollo='K'; break;}
          case 11: {chrcontrollo='L'; break;}
          case 12: {chrcontrollo='M'; break;}
          case 13: {chrcontrollo='N'; break;}
          case 14: {chrcontrollo='O'; break;}
          case 15: {chrcontrollo='P'; break;}
          case 16: {chrcontrollo='Q'; break;}
          case 17: {chrcontrollo='R'; break;}
          case 18: {chrcontrollo='S'; break;}
          case 19: {chrcontrollo='T'; break;}
          case 20: {chrcontrollo='U'; break;}
          case 21: {chrcontrollo='V'; break;}
          case 22: {chrcontrollo='W'; break;}
          case 23: {chrcontrollo='X'; break;}
          case 24: {chrcontrollo='Y'; break;}
          case 25: {chrcontrollo='Z'; break;}
         }
document.FormCodFis.CodiceFiscale.value = strCodFis + chrcontrollo;
 }
 return;
}
// -------------------------------------------------------------------------
//  END OF SCRIPT
// -------------------------------------------------------------------------
******************************************
Spero sia quello che ti serve :-)
A presto
Kalle
--
Saturiamo ECHELON:
bomba saddam attentato medio oriente


grazie :D


*** post for FREE via your newsreader at 
post.newsfeeds.com
 ***
test
"Kirys" <uniK...@DELTHIShotmail.com> ha scritto nel messaggio
news:81oistcg8pot527bq...@4ax.com...

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 90,000 Newsgroups - 16 Different Servers! =-----