View Full Version : Help Regex valori da 1 a 100 con decimali
legolas977
12-05-2022, 19:37
Ciao , devo completare questa Regex che ad ora fa il match con i valori da 0 a 100 con due decimali ( con punto o virgola).
Dovrei disabilitare lo 0 e renderla funzionante per i valori da 1 a 100. Potete aiutarmi? Grazie
Eccola:
^100$|^[0-9]{1,2}$|^[0-9]{1,2}[.,][0-9]{1,2}$|^100[.,][0]{1,2}$
legolas977
13-05-2022, 13:33
Ho risolto , magari serve a qualcuno:
^0[\.|,]([1-9][0-9]?|0[0-9]+?)$|^[1-9]{1,2}[\.|,][0-9]+$|^100[\.|,]?(0+)?$|^[1-9](([0-8](\.[0-9]*)?)|[0-9])?$|^[1-9](([0-8](\.[0-9]*)?)|[0-9])[\.|,][0-9]+$
x_Master_x
13-05-2022, 14:09
^([0-9]{1,2}[.,][0-9]{1,2})?$
https://regex101.com/r/ahO3YT/1
Disegnando l'automa a stati finiti per i numeri di massimo due cifre (da 1 a 99) ed *eventualmente* due cifre decimali, verrebbe una cosa di questo tipo (senza usare i quantificatori):
^[1-9][0-9]?([.,][0-9][0-9])?$
Il caso 100 è scomodo per l'automa perché deve prendere un path completamente diverso, forse la cosa più semplice a quel punto è mettere in OR la prima parte della Regex con la stringa "100":
^(100|[1-9][0-9]?)([.,][0-9][0-9])?$
Comunque, se non ho fatto errori, quella sopra è una possibile alternativa :D.
PS: ma il numero deve avere esattamente 0 o 2 decimali? Nel caso in cui debba avere 2 decimali esatti basta levare il "?" prima del simbolo dollaro.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.