Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Calcolo del Codice Fiscale in VBScript

    salve a tutti
    ho girato in tutto il mondo del web per trovare il codice VBScript del codice fiscale.
    potreste aiutarmi voi???
    grazie a tutti per la vostra disponibilità
    Roberto

  2. #2
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    codice:
    <%@ Language=JScript %>
    
    <%
    
    // Mappatura conversione caratteri posizione dispari
    var mapChars = new Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18,
                             20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23);
    
    var errCode = 0;
    
    function buildFiscalCode(firstName, lastName, birthDate, city, sex)
    {
      firstName = checkName(firstName);
      errCode = 1;  // Codice errore per Nome invalido
      if (firstName.length < 1) return(false);
    
      lastName = checkName(lastName);
      errCode = 2;  // Codice errore per Cognome invalido
      if (lastName.length < 1) return(false);
    
      errCode = 3;  // Codice errore per Data invalida
      if ((birthDate = checkDate(birthDate)) == false) return(false);
    
      var code = codeName(lastName, 3);
      code += codeName(firstName, 4) + birthDate.substr(6, 2);
      code += "ABCDEHLMPRST".substr(parseInt(birthDate.substr(2, 2), 10) - 1, 1);
      code += ((sex != 0) ? birthDate.substr(0, 2) : parseInt(birthDate.substr(0, 2), 10) + 40);
    
      errCode = 4;  // Codice errore per codice Comune/Nazione invalido
      if (city.match(/^[A-Z]\d{3}$/) == null) return(false);
      code += city;
    
      checkSum = 0;
    
      for ( n = 0 ; n < 15 ; n++ )
        {
          c = code.charCodeAt(n);
    
          if (n & 1) checkSum += (c > 57) ? (c - 65) : (c - 48);
          else checkSum += (c > 57) ? mapChars[c - 65] : mapChars[c - 48];
        }
    
      code += String.fromCharCode((checkSum % 26) + 65);
    
      errCode = 0;  // Nessun errore
    
      return(code);
    }
    
    // Codifica il cognome: prima, seconda e terza consonante (se possibile)
    // Codifica il nome: prima, terza e quarta consonante (se possibile)
    function codeName(name, lim)
    {
      var code = "", r = name.match(/[^AEIOU]/g);
      if (r != null) for ( n = 0 ; n < r.length && code.length < lim ; n++ ) code += r[n];
    
      if (code.length > 3) code = code.substr(0, 1) + code.substr(2, 2);  // prima, terza e quarta consonante
    
      if (code.length < 3)  // Se le consonanti non arrivano a 3, aggiungi le vocali
        {
          r = name.match(/[AEIOU]/g);
          if (r != null) for ( n = 0 ; n < r.length && code.length < 3 ; n++ ) code += r[n];
        }
    
      while (code.length < 3) code += "X";  // Se minore di 3 caratteri, aggiungi "X"
    
      return(code);
    }
    
    function checkName(name)
    {
      name = name.toUpperCase();
    
      name = name.replace(/[ÀÁÂÃÄÅàáâãäå]/g, "A");  // Converti le 'A' accentate
      name = name.replace(/[ÈÉÊËèéêë]/g, "E");      // Converti le 'E' accentate
      name = name.replace(/[ÌÍÎÏìíîï]/g, "I");      // Converti le 'I' accentate
      name = name.replace(/[ÒÓÔÕÖòóôõö]/g, "O");    // Converti le 'O' accentate
      name = name.replace(/[ÙÚÛÜùúûü]/g, "U");      // Converti le 'U' accentate
      name = name.replace(/[Çç]/g, "C");            // Converti le 'ç'
      name = name.replace(/[Ññ]/g, "N");            // Converti le 'N' accentate
      name = name.replace(/[Ýýÿ]/g, "Y");           // Converti le 'Y' accentate
    
      return(name.replace(/[^A-Z]/g, ""));  // Elimina qualsiasi carattere non sia una lettera
    }
    
    function checkDate(birthDate)
    {
      if ((r = birthDate.match(/^(\d{2})([/-]?)(\d{2})\2(\d{4})$/)) == null &&
          (r = birthDate.match(/^(\d{1,2})([/-])(\d{1,2})\2(\d{2}|\d{4})$/)) == null) return(false);
    
      var day = parseInt(r[1], 10);    // Inserire la radice '10' in modo da forzare la conversione
      var month = parseInt(r[3], 10);  // decimale e non ottale (nel caso di leading-zeros)
      var year = parseInt(r[4], 10);
      if (year < 100) year += 1900;
    
      if (year < 1800 || year > (new Date()).getFullYear()) return(false);  // Anno compreso tra 1800 e anno corrente
      if (month <1 | month > 12) return(false);  // Mese compreso tra 1 e 12
    
      if (month == 2) maxDay = (!(year % 4) && ((year % 100) || !(year % 400))) ? 29 : 28;
      else maxDay = (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
    
      if (day <1 | day > maxDay) return(false);  // Giorno compreso tra 1 e max giorni del mese corrente
    
      var dt = (day < 10) ? "0" + day : day;
    
      return(dt + ((month < 10) ? "0" + month : month) + year);  // Formatta "ddmmyyyy"
    }
    
    %>
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.