PHP正则表达式匹配价格或金额

hit*_*ory 3 php regex

我需要一个匹配价格或金额的正则表达式.

它应该匹配这些

  • 100
  • 410.00
  • 0.12

但不是这些

  • 100.000
  • -600.00
  • 0.12
  • 0.1234

这适用于所有上述情况,除了单个值,如1

/^[0-9]*\.?[0-9]{2}+$/
Run Code Online (Sandbox Code Playgroud)

如何调整它以使单个整数匹配?任何人都可以解释为什么当前的错误?

The*_*uck 7

我建议对Tom Revell的正则表达式进行小的修正,因为你仍然可以输入几个0作为第一个数字.即00002.23,这很可能是不正确的.

/^([1-9][0-9]*|0)(\.[0-9]{2})?$/
Run Code Online (Sandbox Code Playgroud)


cam*_*cam 5

使小数部分可选:

/^[0-9]+(\.[0-9]{2})?$/
Run Code Online (Sandbox Code Playgroud)