Formati italiani Base Aggiornato: 21/08/2026

Codice Fiscale italiano — controllo formale

Verifica la struttura alfanumerica di 16 caratteri del Codice Fiscale per persone fisiche italiane.

Risposta diretta

A cosa serve e come si usa questa regex?

Verifica la struttura alfanumerica di 16 caratteri del Codice Fiscale per persone fisiche italiane.

Espressione Regolare (Pattern)

Flag consigliati: i · Motori compatibili: JavaScript, PCRE/PHP, Python, Go, .NET
Testa
^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$

Integrazione nel codice

Snippet pronti all'uso
// JavaScript (ES6+)
const regex = /^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$/i;
const isValid = regex.test(text);

// Estrazione match
const matches = text.match(regex);
<?php
// PHP 8.2+ (PCRE)
$pattern = '~^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$~i';
$isValid = (bool) preg_match($pattern, $text);

// Estrazione con gruppi
if (preg_match($pattern, $text, $matches)) {
    print_r($matches);
}
# Python 3 (re)
import re

pattern = r"^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$"
is_valid = bool(re.search(pattern, text))

# Estrazione match
match = re.search(pattern, text)
if match:
    print(match.group(0))
// Go (regexp)
package main

import (
	"fmt"
	"regexp"
)

func main() {
	re := regexp.MustCompile(`^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$`)
	isValid := re.MatchString(text)
	fmt.Println(isValid)
}
// C# (.NET)
using System;
using System.Text.RegularExpressions;

bool isValid = Regex.IsMatch(text, @"^[A-Z]{6}[0-9]{2}[A-EHLMPRST][0-9]{2}[A-Z][0-9]{3}[A-Z]$");

Come funziona (Spiegazione dettagliata)

  1. [A-Z]{6} rappresenta le prime 3 consonanti del cognome e le prime 3 del nome.
  2. [0-9]{2} indica le ultime due cifre dell’anno di nascita.
  3. [A-EHLMPRST] indica la lettera del mese (A=gen, B=feb, C=mar, D=apr, E=mag, H=giu, L=lug, M=ago, P=set, R=ott, S=nov, T=dic).
  4. [0-9]{2} indica il giorno (per le donne viene sommato 40, quindi da 41 a 71).
  5. [A-Z][0-9]{3} rappresenta il codice catastale del comune di nascita o dello stato estero.
  6. L’ultima lettera [A-Z] è il carattere di controllo (checksum calcolato dall’Agenzia delle Entrate).

Casi d’uso consigliati

  • Validazione form di registrazione utenti italiani
  • Sistemi di fatturazione e anagrafica clienti
  • Pre-validazione rapida prima del calcolo algoritmico del checksum

Esempi che corrispondono (Validi)

3 test passati
RSSMRA85T10A562S
VRDLGI80A01H501U
BNCGNN90E55F205W

Esempi rifiutati (Non validi)

4 test respinti
RSSMRA85T10A562
1234567890123456
RSSMRA85Z10A562S
RSSMRA85T10A5621

Limiti tecnici e avvertenze

  • Questa regex effettua esclusivamente un controllo di forma sintattica. Non esegue il calcolo del carattere di controllo finale (algoritmo di Luhn modificato) e non gestisce tutti i casi eccezionali di omocodia con sostituzione di cifre in lettere.
Verifica empirica

Hai bisogno di collaudare questo pattern con i tuoi dati?

Apri il tester sandboxato con questa regex già caricata e verifica i gruppi di cattura.

Apri nel tester