3 回答

TA貢獻1842條經驗 獲得超13個贊
這是Regex Buddy制造商的一些東西。這些來自圖書館,所以我相信它們已經過全面測試。
數字:貨幣金額(必須為美分),可選的千位分隔符;強制性兩位數
Match; JGsoft:
^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}$
數字:貨幣金額(可選的美分)可選的千位分隔符;可選的兩位數小數
Match; JGsoft:
^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?$
數字:貨幣金額US和EU(可選的美分)可以使用美式123,456.78表示法和歐式123.456,78表示法??蛇x的千位分隔符;可選的兩位數小數
Match; JGsoft:
^[+-]?[0-9]{1,3}(?:[0-9]*(?:[.,][0-9]{2})?|(?:,[0-9]{3})*(?:\.[0-9]{2})?|(?:\.[0-9]{3})*(?:,[0-9]{2})?)$

TA貢獻1946條經驗 獲得超3個贊
根本沒有經過完全測試(我只是寫了它!),但是表現正常:
^-?(?:0|[1-9]\d{0,2}(?:,?\d{3})*)(?:\.\d+)?$
測試集:
0
1
33
555
4,656
4656
99,785
125,944
7,994,169
7994169
0.00
1.0
33.78795
555.12
4,656.489
99,785.01
125,944.100
-7,994,169
-7994169.23 // Borderline...
Wrong:
000
01
3,3
5.
555,
,656
99,78,5
1,25,944
--7,994,169
0.0,0
.10
33.787,95
4.656.489
99.785,01
1-125,944.1
-7,994E169
注意:您的System.Decimal依賴于語言環境,很難在正則表達式中創建,除非在構建時。我假設即使在某些文化(區域設置)中有不同的規則,數字也要按三組進行分組。
在其周圍添加空格很簡單。
- 3 回答
- 0 關注
- 613 瀏覽
添加回答
舉報