Ciao a tutti... ho spesso stressato molto su questo forum chiedendo e richiedendo un sacco di info. In questi giorni sto creando un po' di classi che normalmente usavo in ASP ed una di questa da solo non riesco a finirla (si parla di reg exp!).
Io la posto... la classe è semplice, racchiude tutti i controlli che mi sono venuti in mente (tel, piva, cap...). Se mi aiutaste a finirla potremmo metterla in rilievo così che chi vuole la usi liberamente.
codice:
class objCTRL{
 function objCTRL(){}
 
 //ritorna 1 se è un numero
 function isNaN($var){ return preg_match("/^[-]?[0-9]+([\.][0-9]+)?$/", $var); }
 
 //da fare
 function isMail($var) { return $var; }
 
 //ritorna 1 se è un numero di telefono (accetta il . come separatore)
 function isTel($var) { return preg_match("/^\+?\d[0-9 .]{7,12}\d$/", $var); }
 
 //ritorna 1 se è un CAP corretto (5 numeri)
 function isCap($var) { return preg_match("/^[0-9]{5}$/", $var); }
 
 //ritorna 1 se è uno USER corretto (min 5 caratteri, max 25 caratteri, tutti caratteri permessi tranne '"%#)
 function isUser($var) { return preg_match("/^[^ '\"%#]{5,25}$/", $var); }
 
 //ritorna 1 se è una PSW corretta (min 5 caratteri, max 15 caratteri, tutti caratteri permessi tranne '"%#)
 function isPsw($var) { return preg_match("/^[^ '\"%#]{5,15}$/", $var); }
 
 // da fare
 function isCodiceFiscale($var) { return $var; }
 
 //ritorna 1 se è una PIVA corretta (11 numeri)
 function isPiva($var) { return preg_match("/^[0-9]{11}$/", $var); }
 
 // da fare
 function isDate($var,$stato) {
  switch(strtolower($stato)){
   case "it": return $var; //valida data formato italiano (gg/mm/yyyy)
   case "en": return $var; //valida data formato inglese (mm/gg/yyyy)
   default: return $var; //valida data formato generico (yyyy/mm/gg)
  }
 }
 
 //ritorna 1 se rappresenta la valuta (x,xx)
 function isEuro($var) { return preg_match("/(\d+),(\d{2})/", $var); }
}
Manca il controllo della mail, del codice fiscale e della data. Questi controlli li ho in JS, ma non riesco a tradurli!
Ciao e grazie
Rino