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
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).