0

我正在寻找用于货币目的的表达式范围。它需要为 1 - 1 百万,并允许逗号和句点。对于正确的格式,我不需要 (, 和 .) 的最小值/最大值,但我希望一段时间后的数字对于实际的美分值来说是 2 的最小值/最大值。谢谢

范围内:640 或 5,000.35 或 999,000

不在范围内:01 或 1,000,000.01 或 333,567.678

4

2 回答 2

1

这应该这样做:

^(1(\.\d{2})?|[1-9]\d{0,2}(,?\d{3})?(\.\d{2})?)|1((,000){0,2}|(000){0,2})(\.00)?$

但是,如果您首先对值进行规范化(例如,删除除数字和 之外的任何字符.)然后解析它,它可能会更容易。

于 2012-04-14T12:12:56.107 回答
1

我的建议是:

  • 使用类似的东西来验证输入是否具有特定格式:

    (这是一个演示 - http://regexr.com?30l28

    (1[\.,])?([0-9]{1,3}[\.,])?([0-9]{1,3})([\.,][0-9]{1,2})

  • 然后测试值范围:

    value<1.000.000


我的正则表达式绝不是 100% 完成的,但它确实验证了您的通用数字格式。

于 2012-04-14T12:20:34.907 回答