^((?=.*[1-9]|0)(?:\d{1,3}))((?=.*\d)(?:\.\d{3})?)*((?=.*\d)(?:\,\d\d){1}?){0,1}$
Myślę, że to wyrażenie regularne jest bardzo długie i może być krótsze. Problem polega na tym, że nie jestem zbyt dobry w wyrażeniach regularnych, dlatego proszę o pomoc.Regex dla numeru waluty, Jak mogę napisać krótszy?
regex Online Tester http://regexr.com/3a3mk
Moje zasady:
- Począwszy od 1, 2 lub 3 liczb dodatnich [1-9] lub 0.
- Dodajesz tyle. (następnie 3 cyfry [0-9]), jak chcesz.
- możliwość dodawania przecinek 2 liczb (jak po przecinku)
pozytywne wyniki
- 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
negatywne wyniki
- 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
- A0
- 0, A
- 0 AA
- 1.a00.00
- 1.000.a1
[EDYCJA] Dodano więcej wyników negatywnych
marginesie: to jest jak każde pytanie o regex powinien wyglądać. –