Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    [PHP] Espressioni regolari per controllo

    Salve ragà,

    ho una domanda da fare.

    Io ho un campo form dove l'utente deve scrivere una data e ora, e questa dev'essere come segue:

    28/02/2005-14:41

    Ora io vorrei controllare se è formattata come segue, se non lo è poi lo faccio rifare.

    Ho pensato alle espressioni regolari, ma non me ne intendo.

    Qualcuno può aiutarmi?

    Gracias

  2. #2
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    Ho rimosso il post perchè ho aggiunto in quello dopo la versione corretta

  3. #3
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    Chiedo scusa...c'era qualche inesattezza e forse avresti avuto problemi a implementarlo correttamente.
    Questa funziona per certo!!! Poichè l'ho testato

    codice:
    <?php
    
    // mi raccomando sostituisci il '§' al fondo con ':' !!!
    // se lo faccio io : + ( = :(  (codice faccina triste)
    $pattern = "(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)([0-9])([0-9])-(0[0-9]|1[0-9]|2[0-4])§([0-5][0-9])";
    
    // prova
    $testo = "28/02/2005-15:25";
    
    // rimuove spazi bianchi
    $testo = str_replace(" ","", $testo);
    
    // cerca l'exp
    if(ereg($pattern, $testo, $regs)===false){
      die ("formato sbagliato");
    }
    else
    {
      $giorno = $regs[1];
      $mese   = $regs[2];
      $anno   = $regs[3].$regs[4].$regs[5];
      $ore    = $regs[6];
      $minuti = $regs[7];
      
      // verifica
      echo "$giorno / $mese / $anno - $ore : $minuti";
    }
    
    ?>

  4. #4
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    JHammer sei un grande grazieeee!!!

    L'ho messa in una funziona:
    Codice PHP:
    function ctrldate($testo){
    $pattern "(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)([0-9])([0-9])-(0[0-9]|1[0-9]|2[0-4]): ([0-5][0-9])";

    // rimuove spazi bianchi
    $testo str_replace(" ",""$testo);
    // cerca l'exp
    if(ereg($pattern$testo$regs)==false){
      return 
    false;
    }
    else
    {
      return 
    true;
    }

    Grazie mille per esserti preso il disturbo :-)

    Non è che mi sai dire un sito dove imparare ad usarle le espressioni?

  5. #5

  6. #6
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Grazie

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.