【发布时间】:2013-02-02 03:18:04
【问题描述】:
我想要一个可以处理与金钱相关的数字的正则表达式。目前我正在使用这个:
^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$
我的测试集包含以下数字,我希望将其声明为有效。我还提到了每个数字,使用上述正则表达式验证时的验证结果是什么:
123456789012345 //valid
123456789012345.34 //valid
123,456,789,012,345 //valid
123,456,789,012,345.34 //valid
-123,456,789,012,345 //not valid
-123,456,789,012,345.34 //not valid
它似乎适用于除负值之外的所有内容。
其次,它似乎适用于开头带有$ 的值。是否可以将其修改为在开始时接受USD$,而不仅仅是$,以便以下数字有效?:
USD$123,456,789,012,345
USD$123,456,789,012,345.34
【问题讨论】:
-
是的,可以。你试过什么? Regular expressions 为此目的是微不足道的。