PDA

View Full Version : [PHP]Controllo codice fiscale con espressioni regolari.


The Incredible
09-01-2006, 10:54
Devo fare per esercizio il controllo codice fiscale con espressioni regolari.
Siccome avevo già fatto il controllo con javascript ho utilizzato la stessa espressione ma non funziona.
Qualcuno mi può dare una mano?
posto il codice:

$codfiscale=$_POST["codfis"];
$patterncod="/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/";
if (!ereg($patterncod,$codfiscale))
$msg = $msg . "<li>codice fiscale non valido\n";

dov'è che sbaglio?

andbin
09-01-2006, 11:36
$codfiscale=$_POST["codfis"];
$patterncod="/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/";
if (!ereg($patterncod,$codfiscale))
$msg = $msg . "<li>codice fiscale non valido\n";

Con la ereg il pattern \d non funziona e gli slash non servono. Quindi:
$patterncod="^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z]$";

The Incredible
09-01-2006, 12:10
non funziona lo stesso.. :cry:
ho provato ad usare anche preg_match

andbin
09-01-2006, 12:28
non funziona lo stesso.. :cry:
ho provato ad usare anche preg_match
Garantisco che a me funziona la ereg con il pattern che ho detto!!
Potresti verificare il contenuto della variabile $_POST["codfis"] e magari provare ad impostare in modo fisso la variabile $codfiscale con un qualche codice fiscale corretto.

The Incredible
09-01-2006, 12:36
ok hai ragione funziona..l'unica cosa è che non era case sensitive..

corretta ora:

$patterncod="^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$";

Problema risolto
Grazie

andbin
09-01-2006, 12:43
ok hai ragione funziona..l'unica cosa è che non era case sensitive..
La ereg è case-sensitive ma se vuoi puoi usare la eregi, uguale alla ereg ma case-insensitive.