Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [REG EXP] per un codice da me inventato

    Salve a tutti... ho bisogno di un aiutino con le reg exp...
    Devo validare un codice tipo questo: 00213R-06
    Quello che mi interessa controllare sono i 5 numeri iniziali (devono essere 5 per forza), la lettera che deve essere per forza una R e che poi ci sia un trattino e l'anno. Sarebbe bello se la reg exp beccasse al volo l'anno e lo validasse (cioè se l'anno è corrente allora va bene), ma anche senza mi sta bene... basta che validi la parte iniziale...
    Grazie

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Prova cosi':
    Codice PHP:
    $stringa '00213R-06';
    if(
    eregi("^([0-9]{5})(R{1})(-{1})([0-1]{1})([0-9]{1})",$stringa,$res))
    {echo 
    $res[0];}else{echo 'non corretto';} 
    Cmq ho giusto ora fatto una lettura qui http://php.html.it/articoli/leggi/85...ni-regolari/1/ e devo dire che e' ben spiegato.
    Me le sono studiate proprio ora e mai usare prima. Cmq c'e' sicuramente altro da sapere in merito e ora provo ad approfondire.

  3. #3
    sembra funzionare... domanda:
    se io volessi che dopo il trattino ci fosse scritto per forza "06" cosa dovrei mettere?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    $codice = "00213R-06";
    echo preg_match("/^\d{5}R-\d{2}$/",$codice) ? "valido" : "non valido";

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da rinosan_76
    sembra funzionare... domanda:
    se io volessi che dopo il trattino ci fosse scritto per forza "06" cosa dovrei mettere?
    prova così
    echo preg_match("/^\d{5}R-06$/",$codice) ? "valido" : "non valido";

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    $stringa = '00213R-06';
    if(eregi("^([0-9]{5})(R{1})(-{1})(06{1})",$stringa,$res))
    {echo $res[0];}else{echo 'non corretto';}
    Leggiti la guida e vedrai che e' ben spiegato. In 10 minuti ti schiarisci le idee.

  7. #7
    Giusto per generalizzare un po' ho modificato così:
    Codice PHP:
    function isDdT($var,$lettera) {
     
    $da=$lettera."-".date("y"); 
     return 
    preg_match("/^\d{5}$da$/",$var);  
    }

    $stringa '10233R-06';
    echo(
    isDdT_R($stringa,"R")); 
    Sembra funzionare... ci sono controindicazioni ad includere una variabile in una REG EXP?

    xmarco: ho usato il codice di nicola75ss solo perchè simile a quelli che già avevo per il controllo di tutte le altre cose (iva,date...)

  8. #8
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    NP ripeto: ho studiato solo ora le espressioni e sicuramente capiro' come semplificare il codice sopra da me scritto.

  9. #9
    Originariamente inviato da marco80
    NP ripeto: ho studiato solo ora le espressioni e sicuramente capiro' come semplificare il codice sopra da me scritto.
    Io sono messo peggio!!!

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.