我想要一个可以处理与金钱相关的数字的正则表达式。目前我正在使用这个:
^\$?(?:\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