Javascript 正则表达式货币

SIL*_*ENT -1 javascript regex currency

我正在尝试创建一个满足以下条件的正则表达式:

  1. 0.01 - 真
  2. 01.01 - 假
  3. 122343.10 - 真
  4. 123,432.10 - 假
  5. 第123话
  6. 123423.1 - 假

我做了以下但它没有按预期工作

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

使用https://regexr.com/进行测试

Tim*_*sen 5

我会使用这个正则表达式:

^(?!0\d)\d+\.\d{2}$
Run Code Online (Sandbox Code Playgroud)

这在开始时使用负前瞻来处理货币值不能从零开始的要求,如果紧随其后的是另一个数字。

演示

这是执行此操作的另一种方法:

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

这表示匹配一个零,后面没有小数点,或者 1-9 如果后面的也是小数点之前的另一个数字。