繁体   English   中英

Javascript 正则表达式货币

[英]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}$/

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

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

^(?!0\d)\d+\.\d{2}$

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

演示

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

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

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

Tim Biegeleisen 比我快了几分钟,但这是另一个(不太复杂的)解决方案:

(^[0]|^[1-9]+)\.\d{2}$

https://regex101.com/r/QJ3YyQ/2

编辑:我刚刚意识到我错过了一个边缘情况。 如果小数点前的数字包含零,则不匹配。 这是一个更新的正则表达式:

(^[0]|^[1-9]\d*)\.\d{2}$

https://regex101.com/r/QJ3YyQ/4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM