我想我为我需要的东西创建了一个工作正则表达式。只是想知道是否有人可以打破它或看到一个更短的写法。货币正则表达式
正则表达式应该验证以下...
- 美元符号可选
- 负数以括号,而不是一个减号
- 如果负所指,美元符号应在括号外
- 逗号为可选
- 最大数量为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})?))\)))$
更正,我的规范是错误的,如果使用美元符号它必须在括号内。
1:这可能在[codereview.se]属于。 2:正则表达式的语言是什么? 3:你考虑过哪些国际考虑? 4:'1.000,00','3.000' – zzzzBov
你似乎没有多少括号。你是否需要所有人进行匹配组? – Bergi
可能重复[什么是“最好”美国货币RegEx?](http://stackoverflow.com/questions/354044/what-is-the-best-us-currency-regex) –