Visualizzazione dei risultati da 1 a 7 su 7

Discussione: verificare una stringa

  1. #1
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    verificare una stringa

    ciao a tutti,sto facendo una funzione che dovrebbe verificarmi la validità di una stringa inserita in input tramite form.
    per ora ho inserito queste verifiche:
    <?php
    function verificastringa($stringa)
    {

    if((is_string($stringa))&&ereg("^[A-Z,a-z]",$stringa))// verifico che la variabile sia di tipo stringa e che sia una lettera compresa tra a-z maiuscola o minuscola
    {

    for($i = 0;$i < strlen($stringa);$i++) //verifico che il carattere non sia accentato
    {
    $carattere = substr($stringa,$i,1);
    switch($carattere)
    {
    case "à":
    return 0;
    break;
    case "è":
    return 0;
    break;
    case "ì":
    return 0;
    break;
    case "ò":
    return 0;
    break;
    case "ù":
    return 0;
    break;
    default :
    return 1;
    }
    }

    return 1;
    }
    else
    {
    return 0;

    }


    }
    ?>
    volevo solo avere dei chiarimenti sulla funzione ereg che ho inserito,nel senso che se inserisco quei parametri quindi ("^[A-Z,a-z]")perchè se inserisco un carattere speciale la funzione mi restituisce comunque 1?
    la stringa non dovrebbe essere verificata solo per quei valori compresi tra A-Z e a-z?

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    innanzitutto is_string serve a poco, tanto teoricamente da form ti arrivano tutte stringhe, e in ogni caso la regex controlla i caratteri.

    L'errore è dovuto alla regex errata:

    codice:
    if(ereg('^[a-zA-Z]+$', $stringa))
    in pratica dici che la stringa deve iniziare e finire con quelle lettere, altrimenti passa il test perchè trova almeno una lettera corretta.

    (credo che se fai una prova con solo lettere accentate vedrai che la tua regex funziona)

    Ciao

  3. #3
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    si grazie

    la funzione relativa alla verifica non ha un gran senso,ma se uso quella funzione che mi hai scritto li sopra,la stringa se ad esempio ha all'interno dei caratteri speciali passa la verifica?

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    l'if passa se il testo passato contiene solo lettere maiuscole o minuscole, quindi:

    codice:
    aaaa - passa
    AaaA - passa
    AàaA - non passa
    a23a - non passa

  5. #5
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    grazie

    posso chiederti il significato del +$,si riferisce al fatto che se trova una lettera che corrisponde al parametro impostato nella ereg la stringa passa la verifica?

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    ^[a-zA-Z]+$
    ^ La stringa deve cominciare con la serie di caratteri proposta subito dopo
    [a-ZA-Z] Le lettere maiuscole o minuscole
    + Una o più occorrenze del pattern presente tra parentesi quadre
    $ La stringa deve finire con il pattern antecedente

    Per farti capire meglio:

    - Se non ci fosse il carattere ^ la stringa "12àAz" passerebbe il test
    - Se non ci fosse il carattere $ la stringa "Abc12" passerebbe il test
    - Se non ci fosse il carattere + la stringa "aa" non passerebbe il test (verrebbe ricercato un solo carattere che soddisfa il test).

    Ciao

  7. #7
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    grazie

    ti ringrazio veramente tanto della spiegazione esaustiva!
    sei stato gentilissimo!

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.