Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433

    funzione : è un numero di tot cifre

    Ciao a tutti ho creato una piccola funzioncina che dovrebbe ritornarmi se il parametro che ho passato è un numero intero e con tot cifre:
    Codice PHP:
    function numint($ndc,$lunghezza){
    /*
    Cotrolla se il valore passato è un numero intero 
    inoltre verifica che il parametro sia di $lunghezza cifre

    $ndc= parametro da controllare
    $lunghezza = specifica il mumero di cifre che deve avere il numero

    ritorna:
    1 = errore
    2 = errore il numero non è di $lunghezza cifre
    3 = corretta
    */
    $ret=1;
    if (
    is_numeric($ndc))
    {
    if (
    is_int($ndc)) {
                        
    $lung2=strlen($ndc);
                        if (
    $lung2==$lunghezza) {
                                                
    //$ndc è un numero di $lunghezza cifre;
                                                
    $ret=3;
                                        }
    $ret=2;//$ndc è un numero ma NON di $lunghezza cifre;
                        
    }//is_int
                        
    }else $ret=1;//$ndc non è un numero
    return $ret;    

    ma ritorna sempre 1... non trovo l' errore uffa!
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    if(preg_match('/^[0-9]{'.$lunghezza.'}$/', $ndc)) {

    }


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    wow grazie bravissimo!!!

    ultima cosa

    stavo anche guardando su http://regexlib.com/ per le espressioni regolari

    ma quando vedo la "Expression" devo semplicemente copiare e incollare l' espressione in questo modo:

    Matches any string of only upper- and lower- case letters (no spaces).

    che dovrebbe controllarmi se la $ndc ad esempio contiene solo cartteri giuso??
    if(preg_match('^[a-zA-Z]', $ndc))

    nel senso devo solo copiare l' espressione che mi danno all' interno degli apici ' exp ' ???

    grazie ancora
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    le regex vanno messe tra due caratteri delimitatori.

    Nell'esempio che ti ho postato io, la regex è ^[0-9]{'.$lunghezza.'}$, ma in preg_match ci ho messo il carattere / all'inizio e alla fine (nota che è una scelta arbirtraria l'utilizzo della barra, si può usare anche un altro carattere tipo #)

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    porta pazienza:

    allora ho trovato l' espressione ^[a-zA-Z]+$ che dovrebbe verificare che il parametro passato sia una stringa che NON contiene numeri

    quindi trasformo la tua espressione così:

    per vedere se la stringa passata sia una stringa di $lunghezza caratteri (senza spazio)
    if(preg_match('/^[a-zA-Z]+${'.$lunghezza.'}$/', $ndc)){.....}

    mentre per vedere se è solo stringa

    if(preg_match('/^[a-zA-Z]+$/', $sdc)){.....}

    giusto???
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    /^[a-zA-Z]{'.$lunghezza.'}$/'
    ^ indica che deve iniziare con
    [] quello che sta tra quadre è il set di caratteri
    {} indica la quantità (il + significa 1 o + caratteri di quelli tra quadre, e non va assieme alle graffe
    $ indica che deve anche finire con il set di caratteri che hai specificato

    le regex sono un po' ostiche da imparare, io ci sto mettendo un po' di testa, ma non so nemmeno un milionesimo di tutte le possibilità

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.