Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Regex per euro

  1. #1

    Regex per euro

    Avete da suggerirmi qualche buona espressione regolare per riscontrare una stringa formato valuta italiana?
    I paletti sono:
    - punto opzionale come separatore delle migliaia
    - virgola come separatore dei decimali
    - posizioni decimali opzionali, massimo 2
    - 0 iniziale non consentito

    inoltre attualmente nel db metto la variabile come int (moltiplicando x 100 all'insert e dividendo x 100 dopo la select) per non incasinarmi con il float, faccio bene o avete suggerimenti?
    si parla di tasse universitarie quindi sempre sotto i 10 mila euro credo

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Per quello che riguarda il tipo del campo ti consiglio di usare il tipo DECIMAL(7,2).
    Cosi non sei obbligato a moltiplicare o dividere e non usi il float. Non so se il lavoro che stai svolgendo sia personale o professionale ma se č professionale devi anche pensare alla gente che potrebbe lavorare dopo di te e questo secondo me puo' generare problemi inutili.
    Di pių oggi non siamo pių limitati come 15 anni fa quando ogni bit era importante. In informatica č come quando inviti gente a cena. E' meglio se c'č troppa roba che non abbastanza.
    Comunque se uno dei programmatori che lavorano o lavoravano per me mi avessero proposto una soluzione simile li avrei mandati a quel paese.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    e per la regular expression?

  4. #4
    Prova un po' questa:

    codice:
    if(
    	preg_match(
    		'/^(0|(?(?=.*\.)[1,9]\d{0,2}(?:\.\d{3})*|[1,9]\d*))(?:,(\d{1,2}))?$/'
    		,$euro // valuta da controllare
    		,$mth // array: 0=>valuta, 1=>interi, 2=>decimali
    	)
    )
    echo '<pre>'.print_r($mth,true).'</pre>';
    else exit('Formattazione scorretta');
    dA .. foto di viaggio
    L'esperienza č il tipo di insegnante pių difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  5. #5
    ^(\d{1,3}\.(\d{3}\.)*\d{3}|\d+)(,\d{1,2})?$

    io ho costruito questa ma dovrei eliminare i leading zeroes
    cioč npon mi deve accettare:
    01,18 nč
    1,0

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.