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

    validazione campo valuta

    salve,
    dovrei validare un campo valuta e, per il momento, sto usando questo codice:
    codice:
    if(!ereg('^[0-9 .]*$', $costo)) $err[0] = eccetera...
    i problemi però sono due:
    1) gli utenti possono inserire quante cifre vogliono dopo la virgola ed io vorrei limitarle a due soltanto (al massimo, ma potrebbe essere solo una oppure nessuna).
    2) vorrei limitare la parte prima del punto ad un massimo di quattro cifre.
    Qualcuno potrebbe suggerirmi una soluzione?
    grazie

  2. #2
    if(!ereg('^\d{1,4}\.\d{0,2}$', $costo)) $err[0] = eccetera...
    non sono sicurissimo...
    visitate http://camicio.altervista.org per caxxate varie :d

  3. #3
    purtroppo non funziona mi da sempre che il costo è errato.
    ciao

  4. #4
    un altro piccolo aiuto?

  5. #5
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Qualcuno ha una funzioncina già pronta per il controllo di una valuta €?
    Vivrò una vita intera e fortunatamente morirò una volta sola

  6. #6
    Originariamente inviato da camicio109
    if(!ereg('^\d{1,4}\.\d{0,2}$', $costo)) $err[0] = eccetera...
    non sono sicurissimo...
    '^[0-9]{1,4}\.[0-9]{0,2}$'

    \d è per le pregexp
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  7. #7
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554
    Questo funziona

    if(!ereg('^[0-9]{1,4 }\.[0-9]{0,2}$', $costo))
    Per chi non ha familiarità con le espressioni regolari, il 4 è il numero di cifre che vogliamo dopo la virgola

    Grazie drAlberT
    Vivrò una vita intera e fortunatamente morirò una volta sola

  8. #8
    Originariamente inviato da pyotrex
    Questo funziona



    Per chi non ha familiarità con le espressioni regolari, il 4 è il numero di cifre che vogliamo dopo la virgola

    Grazie drAlberT
    uhmm non proprio :-)

    codice:
    '^[0-9]{1,4 }\.[0-9]{0,2}$'
    sta per:

    ^ "inizio stringa"

    [xyz] è un atomo che equivale ad uno qualsiasi dei caratteri elencati

    [a-d] è un atomo che corrisponde alla sequenza dei caratteri da "a" a "d"

    [0-9] sono quindi "un numero qualsiasi"

    {n,m} indica una ripetizione; l'atomo precedente può venir ripetuto da un minimo di n ad un max di m volte

    {1,4} indica da 1 a 4 ripetizioni

    \. match-a il carattere ".", visto che . match-a "qualsiasi carattere"

    $ indica il "fine stringa"

    Detto questo è da notare che la regexp non è ancora perfetta, visto che ammette come buona la stringa "1234."

    la regexp corretta è:

    codice:
    '^[0-9]{1,4 }(\.[0-9]{0,2})?$'
    ovvero:
    (\.[0-9]{0,2}) è la sottoespressione che match-a "virgola e decimali" e che deve essere presente 0 o 1 volta ("?" è lo stesso di "{0,1}")
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  9. #9
    Utente di HTML.it L'avatar di pyotrex
    Registrato dal
    Feb 2003
    Messaggi
    554

    per drAlberT

    Ovviamente tra le persone che hanno poca familiarità con le espressioni regolari ci sono pure io e volevo dare una indicazione "semplice" per modificarla velocemente.

    Detto questo è da notare che la regexp non è ancora perfetta, visto che ammette come buona la stringa "1234."
    Secondo me va bene accettare un numero 1234 per fare in modo che uno inserisca una cifra più velocemente, il dato viene inserito in un db che con i dovuti accorgimenti aggiunge le 2 cifre decimali ,00
    Cosa ne pensi?
    Vivrò una vita intera e fortunatamente morirò una volta sola

  10. #10
    Secondo me va bene accettare un numero 1234 per fare in modo che uno inserisca una cifra più velocemente, il dato viene inserito in un db che con i dovuti accorgimenti aggiunge le 2 cifre decimali ,00
    Cosa ne pensi?
    penso che hai ragione, ma che io ho detto "1234." e non "1234" :-D
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

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.