正则表达式 - 精度为 2 的小数或格式错误的数字

RegEx - Decimal With a Precision of 2 Or Malformed Number

我需要一个 RegEx 模式,该模式将匹配具有两位小数的有效十进制数字字符串,或者仅当格式错误的数字是末尾有小数位的整数时才匹配格式错误的数字。

这是一个很好的关于实现小数点后两位的匹配的讨论

Simple regular expression for a decimal with a precision of 2

但是,我需要以下这些字符串来匹配:

匹配:

不匹配:

仅供参考:这是为了屏蔽输入字段,以便用户可以输入任何两位数字。目前的问题是该字段拒绝小数位,因为它不会将其识别为小数,除非用户点击左键将光标移回一个字符,然后按下小数点键。

试试这个正则表达式:

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

Click for Demo

解释:

  • ^ - 字符串的开头
  • \d+ - 匹配 1+ 个数字
  • (?:\.\d{0,2})? - 匹配小数后跟 0 到 2 位数字。 ? 使这整个部分成为可选的,以便也允许使用整数。
  • $ - 字符串结尾