Controllo semplificato del Codice Fiscale

Mi è capitato di dover controllare il codice fiscale caricato nel mio database.

Il problema è dato dal fatto che la scheda anagrafica non contiene la data di nascita né la città di nascita dell’individuo. Perciò l’unico controllo che ho messo in atto è stato verificare se almeno lo schema (il pattern) fosse corrispondente a quello tipico:

6 lettere, due cifre, una lettera, due cifre, una lettera, tre cifre, una lettera.

Invece di ricorrere a costrutti IF, funzioni stringhe, controlli se i caratteri sono lettere o cifre ecc, molto semplicemente usiamo le regular expressions per ottenere un controllo semplificato del codice fiscale.

1. Su Strumenti-Riferimenti spunto Microsoft VB Script Regular Expressions 1.0

regular_expressions

 

2. Scrivo una funzione che restituisce Vero o Falso a seconda che la stringa controllata corrisponda allo schema di un codice fiscale:

Function fncControlloCodiceFiscale(strCF As String) As Boolean
Dim regex As RegExp
Set regex = New RegExp
regex.Pattern = "[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]"
fncControlloCodiceFiscale = regex.Test(strCF)
End Function

Nel pattern:

  • [A-Z] indica che è accettata una qualunque lettera maiuscola, che deve essere ripetuta sei volte (questo significa il 6 tra parentesi graffe).
    Puoi digitare le graffe con ALT+123 e ALT +12
    Nota. se voglio accettare anche lettere minuscole, potrei scrivere: [A-Za-z]{6}
  • [0-9] indica che è accettata una qualunque cifra, che deve essere ripetuta due volte (questo significa il 2 tra parentesi graffe).