我想我为我需要的东西创建了一个有效的正则表达式。只是想知道是否有人可以打破它或看到更短的编写方法。
正则表达式应验证以下内容...
- 美元符号可选
- 负数用括号表示,而不是减号
- 如果为负数,美元符号应在括号外
- 逗号是可选的
- 最大号码为 999999.99
- 最小值为 (999999.99)
- 不必提供小数,但如果提供,不超过两位数
所以这里有一些有效的例子......
9
$9
$0.99
($999,999.99)
(999999)
($999999)
(999,999)
99,999.9
这就是我想出的:
^\$?(((\d{1,6}(\.\d{1,2})?)|(\d{1,3},\d{3}(\.\d{1,2})?)|\(((\d{1,6}(\.\d{1,2})?)|(\d{1,3},\d{3}(\.\d{1,2})?))\)))$
更正,我的规范是错误的,如果使用美元符号,它必须在括号内。