Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Espressioni regolari
Forum - C# / VB.NET - Espressioni regolari

Avatar
dartraf (Normal User)
Pro


Messaggi: 71
Iscritto: 15/12/2005

Segnala al moderatore
Postato alle 19:41
Venerdì, 29/01/2010
Ciao a tutti
devo creare una espressione regolare che mi permette di avere valori numerici decimali con al massimo 2 cifre decimali
Ad esempio:
12.34 - 1.04 - 5 - 0 - 5.3 - 5.00 - 34567

Non sono proprio pratico con ste espressioni vi prego aiutatemi!!

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:04
Sabato, 30/01/2010
Direi:
Codice sorgente - presumibilmente Plain Text

  1. \d+([\.\,]\d{1,2})?


\d+ = almeno una cifra
\d+(...)? = almeno una cifra, che può opzionalmente essere seguita da un altro gruppo di caratteri
[\.\,] = punto o virgola
\d{1,2} = da una a due cifra, non meno di una e non più di due

In conclusione, almeno una cifra, opzionalmente seguita da al massimo due cifre decimali.

PM Quote
Avatar
dartraf (Normal User)
Pro


Messaggi: 71
Iscritto: 15/12/2005

Segnala al moderatore
Postato alle 13:48
Sabato, 30/01/2010
Ciao totem
ho implementato questo codice per vedere se il valore inserito rispetti la sintassi che ho imposto
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim R As New System.Text.RegularExpressions.Regex("\d+([\.\,]\d{1,2})?")
  2.  MsgBox(R.IsMatch(txtSpese.Text))



ma vedo che il valore ritornato è true anche quando inserisco 32.345 o con 4 cifre dopo il punto.
Dove sbaglio?

PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 19:45
Sabato, 30/01/2010
Codice sorgente - presumibilmente Plain Text

  1. "^\d+([\,\.]\d{1,2})?$"


;)

Ultima modifica effettuata da Gianluca87 il 30/01/2010 alle 19:47
PM Quote