3 回答
TA贡献1842条经验 获得超12个赞
这是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表示法。可选的千位分隔符;可选的两位数小数
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 关注
- 574 浏览
添加回答
举报