Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    [Php] Regexp. Validare colore esadecimale

    Ciao a tutti. Dovrei validare un codice esadecimale che può essere inserito sia con tre caratteri che con sei.

    Come faccio a indicare queste due possibilità? Ho guardato sul manuale ma ho trovato solo numero esatto di occorrenze oppure un intervallo, non un'alternativa tra due numeri ben precisi.
    Ho provato così:
    Codice PHP:
    $colore 'FF0099'//es.

    echo preg_match("#^[a-f0-9]{3|6}$#i",$colore) ? 'valido' 'non valido';
    echo 
    preg_match("#^[a-f0-9]{3}|{6}$#i",$colore) ? 'valido' 'non valido'
    la prima mi dice non valido, la seconda mi da un bel warning.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per il momento l'ho rigirata così e sembra funzionare ma magari il 3 e il 6 si possono definire in altro modo.

    Attendo pareri.

    Codice PHP:
    echo preg_match("#^[a-f0-9]{3}$|^[a-f0-9]{6}$#i",$colore) ? 'valida' 'non valida'

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    ultimo up.

    E' possibile specificare due numeri distinti non contigui di occorrenze oppure è necessario ripetere tutto il pattern e specificare ciascuna volta il numero esatto?

  5. #5
    Per l'ultima domanda credo proprio che tu non possa specificare 2 numeri secchi diciamo, ma devi ripetere il pattern. E se non erro dvi mettere il numero più grande per primo. Mentre per la regex precedente credo tu possa sintetizzarla così:
    codice:
    echo preg_match("#^([a-f0-9]{3}){1,2}$#i",$colore) ? 'valida' : 'non valida';
    notte
    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
    Codice PHP:
    echo preg_match("#^([A-Fa-f0-9]{3}){1,2}$#i",$colore) ? 'valido' 'non valido'
    Azz, anticipato

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Bella! Soluzione geniale.
    Ti ringrazio molto. Avevo uppato proprio sperando in una tua risposta.
    Come sempre grazie e buona notte anche a te.

    Per l'ordine dei valori non mi sembra che creasse problemi ma adesso che mi hai messo la pulce nell'orecchio ricontrollo.

    edit. grazie anche a te cuba.

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.