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

    preg_match ed apice singolo

    sto cercando di far accettare il ' in un campo del form:
    Codice PHP:
    preg_match('/^[.a-zA-Z0-9-\'\s]{1,10}$/'$_POST['campo']) 
    preg_match('/^[.a-zA-Z0-9-`\'`\s]{1,10}$/'$_POST['campo']) 
    ma nessuno dei 2 ha funzionato.
    Conoscete qualcosa al riguardo?

    Ovviamente ho anteposto \ agli apici perchè questo forum li rimuove

  2. #2

    Re: preg_match ed apice singolo

    Codice PHP:
    preg_match('/^[.a-zA-Z0-9\\-\\'\\s]{1,10}$/', $_POST['campo']) 
    Devi fare l'escape anche del carattere -
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    sei sicuro? perchè il - lo lascia passare anche senza backslash

  4. #4
    Il carattere - definisce un range di caratteri => è un carattere speciale => se vuoi usarlo devi usare l'escape!

    [.a-zA-Z0-9-\'\s]

    Come fa php a sapere se tu vuoi:
    i caratteri da 0 a 9 quindi il carattere - e '
    oppure
    il caratterre 0 - e i caratteri da 9 a '
    ???
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    '/^[.a-zA-Z0-9-\'\s]{1,10}$/'

    ho capito ciò che dici ma allora perchè il - me lo fa passare lo stesso anche senza \ davanti?

  6. #6
    Dal manuale PHP
    The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.
    Questo dovrebbe bastarti, ma se vuoi sapere perché te lo fa passare, devi dirmi in che senso.
    Non hai detto che l'espressione non funziona?

    La funzione cosa ritorna?
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

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.