Grazie... Posto l'intera classe, magari a qualcuno può essere utile come elenco dei controlli, nel caso ci fossero altri controlli segnalateli ed aggiungeteli!
codice:
/*########################## classe objCTRL - v1.0 ############################
AKKAttp S.n.c.
$obj = new objCTRL; instanzia la classe
$tmp=$obj->isNaN(var) ritorna 1 se è un numero
$tmp=$obj->isMail(var) ritorna 1 se la mail è corretta
$tmp=$obj->isTel(var) ritorna 1 se è un numero di telefono (accetta il . come separatore)
$tmp=$obj->isCap(var) ritorna 1 se è un CAP corretto (5 numeri)
$tmp=$obj->isUser(var) ritorna 1 se è uno USER corretto (min 5 caratteri, max 25 caratteri, tutti caratteri permessi tranne '"%#)
$tmp=$obj->isPsw(var) ritorna 1 se è una PSW corretta (min 5 caratteri, max 15 caratteri, tutti caratteri permessi tranne '"%#)
$tmp=$obj->isCodiceFiscale(var) ritorna 1 se è un codice fiscale corretto (controlla solo il formato, non fa verifiche)
$tmp=$obj->isPiva(var) ritorna 1 se è una P.IVA corretta (11 numeri)
$tmp=$obj->isDate(var,stato) ritorna 1 se è una data corretta (formato IT, EN, GENERICO)
$tmp=$obj->isEuro(var) ritorna 1 se rappresenta la valuta (x,xx)
###################################################################################*/
class objCTRL{
function objCTRL(){}
function isNaN($var){ return preg_match("/^[-]?[0-9]+([\.][0-9]+)?$/", $var); }
function isMail($var) {
$r1 = "([a-z0-9]+[";
$r2 = "\-]?){1,3}([a-z0-9])*";
return preg_match("/(?i)^{$r1}\._{$r2}\@{$r1}{$r2}\.[a-z]{2,6}$/", $var);
}
function isTel($var) { return preg_match("/^\+?\d[0-9 .]{7,12}\d$/", $var); }
function isCap($var) { return preg_match("/^[0-9]{5}$/", $var); }
function isUser($var) { return preg_match("/^[^ '\"%#]{5,25}$/", $var); }
function isPsw($var) { return preg_match("/^[^ '\"%#]{5,15}$/", $var); }
function isCodiceFiscale($var) { return preg_match("/^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/" , $var); }
function isPiva($var) { return preg_match("/^[0-9]{11}$/", $var); }
// da fare
function isDate($var,$stato) {
switch(strtolower($stato)){
case "it": if (preg_match("/^(0[1-9]|[12]\\d|3[01])[\\/](1[0-2]|0[1-9])[\\/]((19|20)\\d{2})$/",$var)){
list ($giorno, $mese, $anno) = split ('[/.-]', $var);
}else{
return 0;
}
break;
case "en": if (preg_match("/^(1[0-2]|0[1-9])[\/](0[1-9]|[12]\d|3[01])[\/]((19|20)\d{2})$/",$var)){
list ($mese, $giorno, $anno) = split ('[/.-]', $var);
}else{
return 0;
}
break;
default: if (preg_match("/^((19|20)\d{2})[\/](1[0-2]|0[1-9])[\/](0[1-9]|[12]\d|3[01])$/",$var)){
list ($anno, $mese, $giorno) = split ('[/.-]', $var);
}else{
return 0;
}
break;
}
if(checkdate((int)$mese, (int)$giorno, (int)$anno))
return 1;
else
return 0;
}
function isEuro($var) { return preg_match("/(\d+),(\d{2})/", $var); }
}