^((?=.*[1-9]|0)(?:\d{1,3}))((?=.*\d)(?:\.\d{3})?)*((?=.*\d)(?:\,\d\d){1}?){0,1}$
In realtà penso che questa espressione regolare sia molto lunga e potrebbe essere più breve. Il problema è che non sono molto bravo con le espressioni regolari e quindi ti chiedo aiuto.Regex per il numero di valuta, come posso scrivere più breve?
regex online tester http://regexr.com/3a3mk
Le mie regole:
- A partire da 1, 2 o 3 numeri positivi [1-9] o 0.
- Aggiunta come molti. (seguito da 3 numeri [0-9]) come vuoi.
- possibilità di aggiungere un virgola con 2 numeri (come decimali) Risultati
positivo
- 0,55
- 1,60
- 10,70
- 100,80
- 1,10
- 1,000
- 1.000,20
- 10,000
- 10.000,03
- 100,000
- 100.000,08
- 1,000. 000.000
- 1.000.000.000,10
risultati negativi
- 0,0
- 1,1
- 1.000
- 1000,000
- 0,000
- 0.000,10
- 1.000,1
- 1.000,100
- 1.0,00
- 1.00,00
- 1.000,0
- 012,10
- 012.123,10
- un
- a0
- 0, un
- 0, aa
- 1.a00.00
- 1.000.a1
[EDIT] Aggiunti altri risultati negativi
Nota a margine: questo è come qualunque domanda circa regex dovrebbe essere simile. –