Validatori Italiani
Panoramica
I validatori italiani coprono i principali codici anagrafici e identificativi utilizzati in Italia: Codice Fiscale (con verifica dell'algoritmo di checksum ufficiale), Partita IVA (con algoritmo di Luhn modificato) e CAP (Codice di Avviamento Postale).
Tutti i validatori gestiscono automaticamente il case (maiuscolo/minuscolo) e la rimozione degli spazi.
Validatori
codicefiscale
Sintassi: codicefiscale
Descrizione: Verifica la validità del Codice Fiscale italiano. Controlla sia il formato (struttura alfanumerica di 16 caratteri) che il checksum tramite l'algoritmo ufficiale dell'Agenzia delle Entrate.
Formato atteso: 6 lettere (cognome) + 6 lettere/cifre (nome + anno + mese) + 4 caratteri (comune) + 1 lettera (controllo)
Esempi:
// Valido
ValidationService.validate('RSSMRA85M01H501Z', 'codicefiscale')
// Non valido - formato errato
ValidationService.validate('123456789012345X', 'codicefiscale') // inizia con numeri
ValidationService.validate('RSSMRA85M01H501', 'codicefiscale') // manca carattere controllo
// Non valido - checksum errato
ValidationService.validate('RSSMRA85M01H501A', 'codicefiscale') // lettera controllo sbagliata
// In schema DynamicFormLayouts
{ name: 'codicefiscale', type: 'text', validation: 'required|codicefiscale' }
partitaiva
Sintassi: partitaiva
Descrizione: Verifica la validità della Partita IVA italiana. Controlla che sia composta da esattamente 11 cifre e che la cifra di controllo sia corretta tramite l'algoritmo di Luhn modificato.
Gli spazi vengono rimossi automaticamente prima della validazione.
Esempi:
// Valido (11 cifre con checksum corretto)
ValidationService.validate('12345678901', 'partitaiva')
// Con spazi (vengono rimossi)
ValidationService.validate('123 456 78901', 'partitaiva')
// Non valido - lunghezza errata
ValidationService.validate('1234567890', 'partitaiva') // 10 cifre
ValidationService.validate('123456789012', 'partitaiva') // 12 cifre
// Non valido - contiene lettere
ValidationService.validate('1234567890A', 'partitaiva')
// In schema DynamicFormLayouts
{ name: 'partitaiva', type: 'text', validation: 'required|partitaiva' }
codicefiscaleorpartitaiva
Sintassi: codicefiscaleorpartitaiva
Descrizione: Accetta il valore se valido come Codice Fiscale oppure come Partita IVA. Utile per campi anagrafici che devono accettare entrambi i formati (es. soggetti fisici e giuridici).
La validazione tenta prima il Codice Fiscale, poi la Partita IVA. Restituisce errore solo se entrambe falliscono.
Esempi:
// Valido come Codice Fiscale
ValidationService.validate('RSSMRA85M01H501Z', 'codicefiscaleorpartitaiva')
// Valido come Partita IVA
ValidationService.validate('12345678901', 'codicefiscaleorpartitaiva')
// Non valido (né CF né P.IVA)
ValidationService.validate('12345', 'codicefiscaleorpartitaiva')
ValidationService.validate('ABCDEFGHILMN', 'codicefiscaleorpartitaiva')
// In schema DynamicFormLayouts
{ name: 'identificativo', type: 'text', validation: 'required|codicefiscaleorpartitaiva' }
cap
Sintassi: cap
Descrizione: Verifica che il valore sia un CAP (Codice di Avviamento Postale) italiano valido: esattamente 5 cifre numeriche.
Esempi:
// Valido
ValidationService.validate('00100', 'cap') // Roma
ValidationService.validate('20121', 'cap') // Milano
ValidationService.validate('40100', 'cap') // Bologna
// Non valido
ValidationService.validate('0010', 'cap') // 4 cifre
ValidationService.validate('001001', 'cap') // 6 cifre
ValidationService.validate('0010A', 'cap') // contiene lettera
// In schema DynamicFormLayouts
{ name: 'cap', type: 'text', validation: 'required|cap' }
Combinazioni tipiche per form anagrafici
// Anagrafica persona fisica
[
{ name: 'codicefiscale', type: 'text', validation: 'required|codicefiscale' },
{ name: 'cap', type: 'text', validation: 'required|cap' }
]
// Anagrafica azienda
[
{ name: 'partitaiva', type: 'text', validation: 'required|partitaiva' },
{ name: 'cap', type: 'text', validation: 'required|cap' }
]
// Campo universale (persona o azienda)
{ name: 'identificativo', type: 'text', validation: 'required|codicefiscaleorpartitaiva' }