Salve,

stasera avevo la necessità di validare un codice fiscale..venuto a conoscenza che le reg exp non sono sufficienti causa carattere di parità in fondo al cod.fiscale, ho fatto una ricerca su google (mitico motore) e ho trovato una discussione del forum di html.it:

http://forum.html.it/forum/showthrea...postid=3685886

la versione javascript della suddetta soluzione non l'ho testata, però mi serviva la traduzione in VBscript, ma quella postata da br1 non l'ho proprio capita (perchè erano omesse le cose?) e cmq non mi funzionava... quindi ho tradotto (aiutandomi anche con la versione di br1) quella javascript e questo è il risultato:

codice:
function isCodiceFiscale(valore)

dim nTempNum,nAppoNum,i,szTempCodFisc,szLastChar,szValued,szInValued

szCodFisc=valore

 if len(trim(szCodFisc))<16 then 
 isCodiceFiscale=false
 
  else
  
  szCodFisc =ucase(szCodFisc)
  szLastChar = right(szCodFisc,1)
  szTempCodFisc =left(szCodFisc,len(szCodFisc)-1)
  nTempNum = 0
  i = 1
  
  while i<=15
  	'I DISPARI
	szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX"
	szInValued=mid(szTempCodFisc,i,1)
    nAppoNum = instr(szValued,szInValued)
    nTempNum = nTempNum + ((nAppoNum-1) and &H7FFE) / 2
    i = i + 1
    if i<=15 then
     
	 'I PARI
	szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ"
    szInValued=mid(szTempCodFisc,i,1)
    nAppoNum = instr(szValued,szInValued)
    nTempNum =  nTempNum + ((nAppoNum-1) and &H7FFE) / 2
    i = i + 1
	end if
  wend

   nTempNum = (nTempNum mod 26)
   szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   szValued= mid(szValued,nTempNum+1, 1)
   if szValued=szLastChar then 
   isCodiceFiscale=true
   else 
   isCodiceFiscale=false
   end if
end if
end function

response.Write isCodiceFiscale("tutocodicefiscale")
e finalmente dandogli il mio codicefiscale non mi ha dato errore...ora spero che a qualcuno serva e che qualcuno la testi meglio di me e/o la corregga in caso di errori



ps: mi scuso con gli autori del citato post per la mia scopiazzatura