Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    semplice espressione regolare

    Sto imparando a usare queste dannatissime espressioni regolari.
    Fin'ora le sto applicando per il controllo dei contenuti nei campi di un form.
    Quelle pių difficili funzionano.
    Le pių semplici come quella che pubblico qui non funziona.

    Vorrei che l'utente inserisse soltanto caratteri alfa-numerici. Insoma non caratteri speciali.
    Allora ho pensato a un'espressione tipo questa.

    preg_match("/[^a-z0-9]$/i",$field);

    dove sbaglio?





    grazie

  2. #2
    Il segno ^ ha DUE significati diversi a seconda di dove lo poni! La tua regexp /[^a-z0-9]$/i significa: "NON contiene lettere e/o numeri".

    Se il metacarattere ^ viene posto per primo all'interno di parentesi quadre, la sua funzione č di NEGARE tutto il contenuto delle parentesi quadre.

    Quindi la tua espressione deve diventare: /^[a-z0-9]$/i

    Questa regexp significa: "Contiene solo lettere e/o numeri".

  3. #3
    Originariamente inviato da seed_squall_it
    Il segno ^ ha DUE significati diversi a seconda di dove lo poni! La tua regexp /[^a-z0-9]$/i significa: "NON contiene lettere e/o numeri".

    Se il metacarattere ^ viene posto per primo all'interno di parentesi quadre, la sua funzione č di NEGARE tutto il contenuto delle parentesi quadre.

    Quindi la tua espressione deve diventare: /^[a-z0-9]$/i

    Questa regexp significa: "Contiene solo lettere e/o numeri".
    grazie

  4. #4
    perō non mi funziona ancora...

    Codice PHP:
    function no_special_chars($field){
      if(
    preg_match("/^[a-z0-9]$/i",$field)){
      return 
    true;
      }else{
      return 
    false;
      }
    }

    if(
    no_special_chars($nome)){
        echo 
    "il campo č giusto";
      }else{
       echo 
    "il campo contiene caratteri non validi";
      } 

  5. #5
    Prendendo la prima quella postata da digitos..occorre togliere il dollaro in fondo all'espressione, perchč il dollaro āncora la ricerca alla fine della stringa. Se si toglie restituirā "true" se trova un carattere non richiesto.
    Nella seconda va indicato il numero di occorrenze da cercare (un +), perche se omesso in questo caso cerca una stringa alfanumerica lunga un carattere.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    Ecco...infatti mi pareva di aver dimenticato qualcosa per la fretta...

  7. #7
    grazie. Ora ho un quadro pių chiaro..

  8. #8
    si perō cosė se inserisco caratteri tipo |\*?&%$Ŗ mi considera la stringa corretta.

    E' giusto? non penso..


  9. #9
    Eh, perō, se non fai vedere il codice č un po' difficile Probablimente se usi la classe negata ti sei dimenticato di negare a sua volta il risultato di preg_match.
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  10. #10
    Non uso la classe negata...

    Codice PHP:
    function no_special_chars($field){
      if(
    preg_match("/^[a-zA-Z0-9]+/",$field)){
      return 
    true;
      }else{
      return 
    false;
      }


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.