Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Discussione: AIUTO classe controlli

  1. #11
    Originariamente inviato da 13manuel84
    codice:
    $str5="03/12/1995";
    if (preg_match("/^(0[1-9]|[12]\\d|3[01])[\\/](1[0-2]|0[1-9])[\\/]((19|20)\\d{2})$/",$str5)) echo "
    okdata";

    questo è il massimo che sono riuscito a tirar fuori, avevo anche io una cosa simile in js.

    così ti controlla che la data sia SOLO nel formato gg/mm/aaaa

    quindi compresi eventiali zeri se il numero è minore di 10

    9/3/2005 -> non lo accetta
    09/03/2005 -> corretto

    altro controllo che fa è che gg non sia maggiore di 31 e mm maggiore di 12, però uno potrebbe inserirti 31/02/1998, poi sull'anno controlla che inizi con 19 (e quindi anni del 1900) o con 20 (anni del 2000).

    Ottenere di più con una preg non so se puoi [si potrà sicuramente ma io non so aiutarti ]
    Sono riuscito poi a controllare la data con il checkdata, mi riesci a fare le reg exp anche per il formato inglese (mm/gg/yyyy) e per un formato generico (yyyy/mm/gg)? poi posto la funzioncina...

  2. #12
    Originariamente inviato da rinosan_76
    Dici che è meglio di quella che ho postato io su? Io non ne capisco molto...
    questa mi sa che la tua non la prende :

    info@deltasistemisrl.it

    function isMail($var) { return preg_match("/^[a-zA-Z]{1}\w{1,10}[-|.|_]{0,1}\w{0,10}@\w{3,10}\.\w{0,10}-{0,1}\w{0,10}\.{0,1}\w{2,6}$/i", $var); }

    perche' hai detto all'espressione che dopo la chiocciolina l'indirizzo si aspetta una parola da 3 a 10 caratteri seguita obbligatoriamente dal segno punto ( . ) ecc, ecc. Quindi il dominio, come nell'esempio è maggiore di 10 caratteri ( deltasistemisrl ).

    ______________________________________

    Progresso Web.

  3. #13
    vero... allora uso la tua...

  4. #14
    x le date in formato inglese (mm/gg/yyyy) e generico (yyyy/mm/gg) nessuno sa aiutarmi?

  5. #15
    beh, una volta che hai il formato italiano basta che giochi un attimo con i vari pezzetti della preg e li sistemi nei posti esatti.

    hai 3 pezzi:
    il primo: (0[1-9]|[12]\d|3[01]) ti valida il giorno
    il secondo: (1[0-2]|0[1-9]) ti valida il mese
    il terzo: ((19|20)\d{2}) ti valida l'anno

    basta che li metti nella sequenza che vuoi e imposti i divisori come preferisci.


    se posso darti un suggerimento per il controllo della mail, se n'è parlato tantissimo sul forum, e la soluzione migliore che n'è venuta fuori è la funione che ha postato andr3a:

    codice:
    function checkMail( $m ) {
    	// andr3a / HTML.IT / caruccis
    	$r1 = "([a-z0-9]+[";
    	$r2 = "\-]?){1,3}([a-z0-9])*";
    	return preg_match("/(?i)^{$r1}\._{$r2}\@{$r1}{$r2}\.[a-z]{2,6}$/", $m);
    }
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #16
    si, infatti ho usato quella... per le date invece non riesco a capirne il funzionamento... sfortunatamente sono molto a digiuno di Reg Exp, una mia lacuna imperdonabile.

  7. #17
    codice:
    $str5="03/12/1995";
    $str6="12/15/1998";
    $str7="2005/12/30";
    if (preg_match("/^(0[1-9]|[12]\d|3[01])[\/](1[0-2]|0[1-9])[\/]((19|20)\d{2})$/",$str5)) echo "
    okdata1
    ";	// formato gg/mm/aaaa
    if (preg_match("/^(1[0-2]|0[1-9])[\/](0[1-9]|[12]\d|3[01])[\/]((19|20)\d{2})$/",$str6)) echo "
    okdata2
    ";	// formato mm/gg/aaaa
    if (preg_match("/^((19|20)\d{2})[\/](1[0-2]|0[1-9])[\/](0[1-9]|[12]\d|3[01])$/",$str7))	echo "
    okdata3
    ";	// formato aaaa/mm/gg
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #18
    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); }
    }

  9. #19
    ...
    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);
    }
    ...
    [edit]
    la funzione e' sotto licenza common creatives ( http://www.devpro.it/code/2.html ) , quindi puoi usarle dentro tutto il codice tuo che vuoi ma non puoi togliere i commenti o credits ed appropriartene.
    Impariamo a rispettare gli aiuti e la cominutà open source, saluti.
    [ ... e non è un caso che caruccis te l'abbia postata coi commenti !!! ]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #20
    Non lo sapevo... reinseriti anche nel mio codice...
    codice:
    /*########################## classe objCTRL - v1.0 ############################
    AKKAttp S.n.c.
    http://www.akkattp.com
    info@akkattp.com
     $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) { 
      // andr3a / HTML.IT / caruccis
      $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); }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.